Skip to content
  • Simon Peyton Jones's avatar
    Care with occCheckExpand in kind of occurrences · ba205046
    Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
    Issue #18451 showed that we could get an infinite type, through
    over-use of occCheckExpand in the kind of an /occurrence/ of a
    type variable.
    
    See Note [Occurrence checking: look inside kinds] in GHC.Core.Type
    
    This patch fixes the problem by making occCheckExpand less eager
    to expand synonyms in kinds.
    
    It also improves pretty printing of kinds, by *not* suppressing
    the kind on a tyvar-binder like
        (a :: Const Type b)
    where type Const p q = p.  Even though the kind of 'a' is Type,
    we don't want to suppress the kind ascription.  Example: the
    error message for polykinds/T18451{a,b}. See GHC.Core.TyCo.Ppr
    Note [Suppressing * kinds].
    ba205046