added abstraction of datatypes vs literals, new typechecking method with dispatch of typeof/iscompatibleto is implemented + tests updated for that, still have to update javadoc and slightly refactor