Rewritten typechecker for new type abstractions.
Add missing space to C comment to make it neat
Split whenM and condM into a Util module
Add Util to cabal file