Things that are broken or missing right now
you can not use libcxx::thread or identifiers, that have helix keywords, since thread is a helix keyword. You can go arround by wrapping that in a __inline_cpp("libcxx::thread") or you can alias it elsewhere.
__inline_cpp("...") can’t be used anywhere since it parses as a function call, so you can’t use it in places like type declarations, or places where a function call is not allowed.
Operator precidence is very broken right now, somehting like a.b() as c should parse as (a.b()) as c but it parses as a.(b() as c), so you have to do (a.b()) as c to get the correct behavior. This isssue is worse in places like an if where no errors are given but logically it breaks like if 1 == 2 && 3 + 4 == 7 parses as if 1 == (2 && (3 + (4 == 7))) which is very wrong.
There is a few more issues, ill add them as I find them.
Having a circular import causes the compiler go into an inf loop and memory leak until killed. (like if file A imports file B, and file B imports file A)