typeCheckExp (EInt i) = return TInt
typeCheckExp (EBool b) = return TBool
typeCheckExp EReadI = return TInt
typeCheckExp EReadB = return TBool
typeCheckExp (ExpT t e) = do
t2 <- typeCheckExp e
typeCheckExp (EInt i) = return TInt
typeCheckExp (EBool b) = return TBool
typeCheckExp EReadI = return TInt
typeCheckExp EReadB = return TBool
typeCheckExp (ExpT t e) = do
t2 <- typeCheckExp e