... | ... | @@ -36,8 +36,11 @@ It is also noteworthy, that the representations of types changes during type che |
|
|
- `TcUnify`: solves unification constraints "on the fly"; if it can't, it generates a constraint for the constraint solver to deal with later
|
|
|
- `TcErrors`: generates good error messages from the residual, unsolved constraints.
|
|
|
|
|
|
>
|
|
|
>
|
|
|
> The best place reading for the constraint solver is the paper [ Modular type inference with local assumptions](http://www.haskell.org/haskellwiki/Simonpj/Talk:OutsideIn)
|
|
|
>
|
|
|
>
|
|
|
|
|
|
- Underlying infrastructure:
|
|
|
|
... | ... | @@ -45,6 +48,10 @@ It is also noteworthy, that the representations of types changes during type che |
|
|
- [TcRnMonad](commentary/compiler/tc-rn-monad): the main typechecker monad
|
|
|
- `TcType`: pure functions over types, used by the type checker
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Entry Points Into the Type Checker
|
|
|
|
|
|
|
... | ... | |