Skip to content
  • Simon Peyton Jones's avatar
    Refactor occurrence-check logic · 9417e579
    Simon Peyton Jones authored
    This patch does two related things
    
    * Combines the occurrence-check logic in the on-the-fly unifier with
      that in the constraint solver.  They are both doing the same job,
      after all.  The resulting code is now in TcUnify:
         metaTyVarUpdateOK
         occCheckExpand
         occCheckForErrors (called in TcErrors)
    
    * In doing this I disovered checking for family-free-ness and foralls
      can be unnecessarily inefficient, because it expands type synonyms.
      It's easy just to cache this info in the type syononym TyCon, which
      I am now doing.
    9417e579