• Simon Peyton Jones's avatar
    Tidy up and refactor wildcard handling · 95364812
    Simon Peyton Jones authored
    When examining #10615, I found the wildcard handling hard
    to understand.  This patch refactors quite a bit, but with
    no real change in behaviour.
    
     * Split out TcIdSigInfo from TcSigInfo, as a separate type,
       like TcPatSynInfo.
    
     * Make TcIdSigInfo express more invariants by pushing the
       wildard info into TcIdSigBndr
    
     * Remove all special treatment of unification variables that arise
       from wildcards; so the TauTv of TcType.MetaInfo loses its Bool
       argument.
    
    A ton of konck on changes.  The result is significantly simpler, I think.
    95364812
TcPatSyn.hs 24 KB