Alpha version of static type checking
It can typecheck most of the prelude