Type checker implemented and working