This basically flips the --noDebug flag to become a --debug flag, so some optimizations, like inlining, aren't skipped by default, which might be unexpected.
This catches the most common cases but doesn't yet implement inference involving the return type because some prequesites are not yet in place (see test case).