matijapretnar/eff — pull request #8 by andrejbauer (2012-08-08 15:24:58+00:00)
Title: Checking for non-exhaustive patterns now done only after the inference phase.

All calls to Tctx.xxx passed !Tctx.global, so I removed the explicit passing of typing contexts.
This means we cannot reason easily in a hypothetical typing context without doing some dirty
work, such as temporarily setting Tctx.global. But this should not create trouble, and the
code is now cleaner.

Pattern exhaustion checking in match statements and checking of irrefutable patterns in
let statements is now done properly after inference succeeds. There might be some uneccesarry
warning regarding the empty type, but this should not create problems in practice.