A constraint alias (-XConstraintKinds) to make functions dealing with
GhcModT somewhat cleaner.

Basicially an IOish m => m is a Monad supporting arbitrary IO and
exception handling. Usually this will simply be IO but we parametrise it in
the exported API so users have the option to use a custom inner monad.