Instances of the exception-related monads in the exceptions package
have been added for the FreshMT and LFreshMT types. This allows these
monads to be used in transformer stacks which make use of extensible
exceptions. For example, a compiler may want a typechecking monad
newtype CheckM a = C { unCheckM :: StateT TypeEnv FreshM a }
to derive MonadThrow, allowing exceptions to be thrown using a custom
exception type with typechecking-specific exceptions.
Instances of the exception-related monads in the exceptions package have been added for the FreshMT and LFreshMT types. This allows these monads to be used in transformer stacks which make use of extensible exceptions. For example, a compiler may want a typechecking monad
to derive MonadThrow, allowing exceptions to be thrown using a custom exception type with typechecking-specific exceptions.