I dont think this kind of stuff should be exposed outside the compiler