-module Interpret (eval, execute, Value(VInt, VBool)) where
+module Interpret (interpret, eval, execute, Value(VInt, VBool)) where
import Abssyntax
import Control.Monad.State
type Variables = [Map Ident Value]
+interpret :: [Stm] -> IO ()
+interpret s = runStateT (mapM execute s) [empty] >> return ()
+
--eval :: (MonadState Variables m) => Exp -> m Value
eval :: Exp -> StateT Variables IO Value
eval (EBool b) = return (VBool b)