Skip to content
  • Richard Eisenberg's avatar
    Allow eager unification with type families. · 3f5d1a13
    Richard Eisenberg authored
    Previously, checkTauTvUpdate, used in the eager unifier (TcUnify)
    right before writing to a metavar, refused to write a metavar to
    a type involving type functions. The reason for this was given
    in a Note, but the Note didn't make all that much sense and even
    admitted that it was a bit confused. The Note, in turn, referred
    to another Note, which it was quite sceptical of, as well.
    
    The type-family check was slowing down performance, so I tried
    removing it, running the tests referred to in the Note. The tests
    all passed without the check. Looking at more test results, I
    saw several error messages improve without the check, and some cases
    where GHC looped (T7788, in particular) it now doesn't.
    
    So, all in all, quite a win: Two hairy Notes removed, several lines
    of code removed, better performance, and improved output.
    
    [skip ci]
    3f5d1a13