Use CompileInfoT IO a instead so that errors are recoverable, and to allow short-circuiting based on compilation failure. This might also require changing PathResolver and CompilerBackend so that exit isn't the only failure option.
Note that IO (CompileInfo a)should not be replaced with CompileInfoT IO a where multiple failures should be allowed, e.g., in Tests and Cli.TestRunner.
Use
CompileInfoT IO a
instead so that errors are recoverable, and to allow short-circuiting based on compilation failure. This might also require changingPathResolver
andCompilerBackend
so that exit isn't the only failure option.Note that
IO (CompileInfo a)
should not be replaced withCompileInfoT IO a
where multiple failures should be allowed, e.g., inTests
andCli.TestRunner
.