Skip to content
  • Simon Peyton Jones's avatar
    Fix tyConToIfaceDecl (Trac #9190) · e5257f8f
    Simon Peyton Jones authored
    There are three bugs here, one serious
    
     * We were failing to tidy the type arguments in an IfTyConParent
       This is what was causing Trac #9190.
    
     * toIfaceTcArgs is careful to suppress kind arguments, but there
       was a clone, tidyToIfaceTcArgs in IfaceSyn which didn't.
       Now the latter goes via the former.
    
     * When pretty-printing a IfaceDecl for an algebraic data type, and
       doing so in Haskell-98 syntax, we were silently assuming that the
       universal type variables of the TyCon and the DataCon were the
       same. But that has not been true for some time. Result: a very
       confusing display.
    
       Solution: during the conversion to IfaceSyn, take the opportunity
       to make the universal type variables line up exactly.  This is very
       easy to do, makes the pretty-printing easy, and leaves open the future
       possiblity of not serialising the universal type variables of the
       data constructor.
    e5257f8f