Skip to content

Break up TcRnTypes, among other modules.

Richard Eisenberg requested to merge rae/ghc:split-up-modules into master

The commit message:

    Break up TcRnTypes, among other modules.
    
    This introduces three new modules:
    
     - basicTypes/Predicate.hs describes predicates, moving
       this logic out of Type. Predicates don't really exist
       in Core, and so don't belong in Type.
    
     - typecheck/Origin.hs describes the origin of constraints
       and types. It was easy to remove from other modules and
       can often be imported instead of other, scarier modules.
    
     - typecheck/Constraint.hs describes constraints as used in
       the solver. It is taken from TcRnTypes.
    
    No work other than module splitting is in this patch.
    
    This is the first step toward homogeneous equality, which will
    rely more strongly on predicates. And homogeneous equality is the
    next step toward a dependently typed core language.
Edited by Richard Eisenberg

Merge request reports