+typeCheckExp (EVar i) = typeCheckVar i
+typeCheckExp (EAss i e) = do
+ a <- typeCheckVar i
+ b <- typeCheckExp e
+ if a == b then return a else fail "FEL!"
+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
+ if t == t2 then return t else fail "FEL!"
+typeCheckExp EDefault = return NoType
+typeCheckExp (EPost i op) = do
+ TInt <- typeCheckVar i
+ return TInt
+