There are a few benefits from this, for example:
- It will greatly reduce the complexity of the codegen.
- It will accept open types, instead of sticking to a closed type system which only contains types defined in TSL. (for example, GetField is invalid when the type system only contains float, which is counterintuitive)