Skip to content
  • Simon Peyton Jones's avatar
    Refactor to eliminate FamTyConShape · 0390e4a0
    Simon Peyton Jones authored
    Consider this note (TcTyClsDecls)
    
      Note [Type-checking type patterns]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      When typechecking the patterns of a family instance declaration, we can't
      rely on using the family TyCon itself, because this is sometimes called
      from within a type-checking knot. (Specifically for closed type families.)
      The FamTyConShape gives just enough information to do the job.
    
    I realised that this exact purpose can be served by TcTyCons, and
    in fact rather better.  So this patch
    
    * Refactors FamTyConShape out of existence, replacing it with TcTyCOn
    
    * I also got rid Type.filterOutInvisibleTyVars, which was a very
      complex way to do something quite simple.  I replaced the calls
      with TyCon.tyConVisibleTyVars.
    
    No change in behaviour.
    0390e4a0