Fix total pattern match verification
[scheme.git] / typecheck.md
1 # lets
2
3 Lets bindings are recursive, and so to handle this the typechecker
4 first creates a dependency graph of the bindings with `graph`.
5
6 The strongly connected components are then computed with `scss`, and
7 then when creating the environment for the let body:
8
9 1. For each strongly connected component (scc) 
10 2. Insert the offsets of each component in the scc into the environment
11 3. Codegen the bindings in the scc
12 4. Pass on the environment to the next scc