g2-0.1.0.0: src/G2/Language/Monad/TypeEnv.hs
module G2.Language.Monad.TypeEnv ( lookupT
, insertT ) where
import G2.Language
import G2.Language.Monad.Support
import qualified Data.Map as M
import Prelude hiding( filter
, lookup
, map
, null)
liftTE :: ExState s m => (TypeEnv -> a) -> m a
liftTE f = return . f =<< typeEnv
lookupT :: ExState s m => Name -> m (Maybe AlgDataTy)
lookupT n = liftTE (M.lookup n)
insertT :: ExState s m => Name -> AlgDataTy -> m ()
insertT n t = do
tenv <- typeEnv
let tenv' = M.insert n t tenv
putTypeEnv tenv'