Continuing a tangential concern from issue #178.
Look into the exception handling and setting of return values. It might just be the parts of the CLI that can exit with failure without setting a return value. --parse-check can fail with a zero return-value if files don't exist, for example. Maybe run the functions called by Main.main wrapped in exception handling?