{-# LANGUAGE TypeSynonymInstances #-} module CSPM.Evaluator.Module ( bindModules, bindModule, ) where import Control.Monad import CSPM.DataStructures.Names import CSPM.DataStructures.Syntax import CSPM.Evaluator.DeclBind import CSPM.Evaluator.Monad import CSPM.Evaluator.Values import Util.Annotated bindModules :: [TCModule] -> EvaluationMonad [(Name, Value)] bindModules ms = liftM concat (mapM bindModule ms) bindModule :: TCModule -> EvaluationMonad [(Name, Value)] bindModule an = case unAnnotate an of GlobalModule ds -> bindDecls ds