module Language.Haskell.Liquid.Name.LogicNameEnv
( LogicNameEnv(..)
, extendLogicNameEnv
) where
import qualified Liquid.GHC.API as GHC
import Language.Fixpoint.Types
import Language.Haskell.Liquid.Types.Names
data LogicNameEnv = LogicNameEnv
{ LogicNameEnv -> SEnv LHName
lneLHName :: SEnv LHName
, LogicNameEnv -> NameEnv LHName
lneReflected :: GHC.NameEnv LHName
}
extendLogicNameEnv :: LogicNameEnv -> [LHName] -> LogicNameEnv
extendLogicNameEnv :: LogicNameEnv -> [LHName] -> LogicNameEnv
extendLogicNameEnv LogicNameEnv
env [LHName]
ns =
LogicNameEnv
env
{ lneLHName =
foldr (uncurry insertSEnv) (lneLHName env) [ (lhNameToResolvedSymbol n, n) | n <- ns]
}