• Simon Peyton Jones's avatar
    Re-add FunTy (big patch) · 77bb0927
    Simon Peyton Jones authored
    With TypeInType Richard combined ForAllTy and FunTy, but that was often
    awkward, and yielded little benefit becuase in practice the two were
    always treated separately.  This patch re-introduces FunTy.  Specfically
    
    * New type
        data TyVarBinder = TvBndr TyVar VisibilityFlag
      This /always/ has a TyVar it.  In many places that's just what
      what we want, so there are /lots/ of TyBinder -> TyVarBinder changes
    
    * TyBinder still exists:
        data TyBinder = Named TyVarBinder | Anon Type
    
    * data Type = ForAllTy TyVarBinder Type
                | FunTy Type Type
                |  ....
    
    There are a LOT of knock-on changes, but they are all routine.
    
    The Haddock submodule needs to be updated too
    77bb0927
TcGenDeriv.hs 116 KB