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.
Check for match clauses which are unreachable because they are preceeded by a clauses which match any value.