module Typecheck (typeCheckExp, typeCheckStm, typeCheckVar) where
+
import Abssyntax
import Control.Monad.State
import Data.Map as Map
t2 <- typeCheckExp e
if t == t2 || t2 == NoType then do
(m:ms) <- get
- case insertLookupWithKey (\k a1 a2 -> a1) i t m of
+ case insertLookupWithKey (\k a1 a2 -> a1) i t m of
(Nothing,m') -> put (m':ms)
_ -> fail $ "Duplicate variable declaration: "++show i
return NoType