--eval :: (MonadState Variables m) => Exp -> m Value
eval :: Exp -> StateT Variables IO Value
eval (EBool b) = return (VBool b)
eval (EInt n) = return (VInt n)
eval (EVar i) = getVariableValue i
--eval :: (MonadState Variables m) => Exp -> m Value
eval :: Exp -> StateT Variables IO Value
eval (EBool b) = return (VBool b)
eval (EInt n) = return (VInt n)
eval (EVar i) = getVariableValue i