Add file for the type inference engine
Port type variable code
Add environment definitions