Skip to content
  • Simon Peyton Jones's avatar
    Persist CorePrepProv into IfaceUnivCoProv · 6acadb79
    Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
    CorePrepProv is only created in CorePrep, so I thought it wouldn't be
    needed in IfaceUnivCoProv.  But actually IfaceSyn is used during
    pretty-printing, and we can certainly pretty-print things after
    CorePrep as #19768 showed.
    
    So the simplest thing is to represent CorePrepProv in IfaceSyn.
    
    To improve what Lint can do I also added a boolean to CorePrepProv, to
    record whether it is homogeneously kinded or not. It is introduced in
    two distinct ways (see Note [Unsafe coercions] in GHC.CoreToStg.Prep),
    one of which may be hetero-kinded (e.g. Int ~ Int#) beause it is
    casting a divergent expression; but the other is not.  The boolean
    keeps track.
    6acadb79