Simple name analysis - using an environment All we need to do here is check that at use sites all variables have been bound by an enclosing let, letrec or function parameter.
Return whether this node is semantically correct or not? Note that for tests to pass this computation must check every compnonent of the node, not just enough to determine that it's not semantically correct.
Check for match clauses which are unreachable because they are preceeded by a clauses which match any value.
Simple semantic analysis of untyped ISWIM programs