the setup is solid. there are thousands of tests and CI won't let things to merge if tests are failing.

But overall, this is pretty normal for compilers to have this sort of "unexpected" tests failing due to some work in an area. It happened to me when I was coding everything manually back in the day too

> 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...