• Simon Peyton Jones's avatar
    Treat isConstraintKind more consistently · c5d31df7
    Simon Peyton Jones authored
    It turned out that we were not being consistent
    about our use of isConstraintKind.
    
    It's delicate, because the typechecker treats Constraint and Type as
    /distinct/, whereas they are the /same/ in the rest of the compiler
    (Trac #11715).
    
    And had it wrong, which led to Trac #15412.  This patch does the
    following:
    
    * Rename isConstraintKind      to tcIsConstraintKind
             returnsConstraintKind to tcReturnsConstraintKind
      to emphasise that they use the 'tcView' view of types.
    
    * Move these functions, and some related ones (tcIsLiftedTypeKind),
      from Kind.hs, to group together in Type.hs, alongside isPredTy.
    
    It feels very unsatisfactory that these 'tcX' functions live in Type,
    but it happens because isPredTy is called later in the compiler
    too.  But it's a consequence of the 'Constraint vs Type' dilemma.
    c5d31df7
TcErrors.hs 125 KB