made a new implementation of the TypeInferencer that's a bit more explicit/readable
finally got polymorphic type inferencing working
removed files