> there are thousands of tests and CI won't let things to merge if tests are failing.

That's not what a clean setup means... I mean good separation of concerns, established invariants, etc.

A compiler and type checker is very special case where you can fix something in the lexer or parser and break another thing in AST walker etc. tsz is well architected but those things can happen if you're not careful and that's precisely what I meant in my original comment. Fable can think how changing parser can impact checker etc...