Safe Haskell | None |
---|---|
Language | Haskell98 |
- type CG = State CGInfo
- data CGInfo = CGInfo {
- fEnv :: !(SEnv Sort)
- hsCs :: ![SubC]
- hsWfs :: ![WfC]
- sCs :: ![SubC]
- fixCs :: ![FixSubC]
- isBind :: ![Bool]
- fixWfs :: ![FixWfC]
- freshIndex :: !Integer
- binds :: !BindEnv
- annotMap :: !(AnnInfo (Annot SpecType))
- tyConInfo :: !(HashMap TyCon RTyCon)
- specDecr :: ![(Var, [Int])]
- newTyEnv :: !(HashMap TyCon SpecType)
- termExprs :: !(HashMap Var [Located Expr])
- specLVars :: !(HashSet Var)
- specLazy :: !(HashSet Var)
- autoSize :: !(HashSet TyCon)
- tyConEmbed :: !(TCEmb TyCon)
- kuts :: !Kuts
- kvPacks :: ![HashSet KVar]
- cgLits :: !(SEnv Sort)
- cgConsts :: !(SEnv Sort)
- cgADTs :: ![DataDecl]
- tcheck :: !Bool
- scheck :: !Bool
- pruneRefs :: !Bool
- logErrors :: ![Error]
- kvProf :: !KVProf
- recCount :: !Int
- bindSpans :: HashMap BindId SrcSpan
- allowHO :: !Bool
- ghcI :: !GhcInfo
- dataConTys :: ![(Var, SpecType)]
- data CGEnv = CGE {
- cgLoc :: !SpanStack
- renv :: !REnv
- syenv :: !(SEnv Var)
- denv :: !RDEnv
- litEnv :: !(SEnv Sort)
- constEnv :: !(SEnv Sort)
- fenv :: !FEnv
- recs :: !(HashSet Var)
- fargs :: !(HashSet Var)
- invs :: !RTyConInv
- rinvs :: !RTyConInv
- ial :: !RTyConIAl
- grtys :: !REnv
- assms :: !REnv
- intys :: !REnv
- emb :: TCEmb TyCon
- tgEnv :: !TagEnv
- tgKey :: !(Maybe TagKey)
- trec :: !(Maybe (HashMap Symbol SpecType))
- lcb :: !(HashMap Symbol CoreExpr)
- holes :: !HEnv
- lcs :: !LConstraint
- aenv :: !(HashMap Var Symbol)
- cerr :: !(Maybe (TError SpecType))
- cgInfo :: !GhcInfo
- cgVar :: !(Maybe Var)
- data LConstraint = LC [[(Symbol, SpecType)]]
- data FEnv = FE {}
- initFEnv :: [(Symbol, Sort)] -> FEnv
- insertsFEnv :: FEnv -> [((Symbol, Sort), BindId)] -> FEnv
- data HEnv
- fromListHEnv :: [Symbol] -> HEnv
- elemHEnv :: Symbol -> HEnv -> Bool
- data SubC
- type FixSubC = SubC Cinfo
- subVar :: FixSubC -> Maybe Var
- data WfC = WfC !CGEnv !SpecType
- type FixWfC = WfC Cinfo
- type RTyConInv = HashMap RTyCon [RInv]
- mkRTyConInv :: [(Maybe Var, Located SpecType)] -> RTyConInv
- addRTyConInv :: RTyConInv -> SpecType -> SpecType
- addRInv :: RTyConInv -> (Var, SpecType) -> (Var, SpecType)
- type RTyConIAl = HashMap RTyCon [RInv]
- mkRTyConIAl :: [(a, Located SpecType)] -> RTyConInv
- removeInvariant :: CGEnv -> CoreBind -> (CGEnv, RTyConInv)
- restoreInvariant :: CGEnv -> RTyConInv -> CGEnv
- makeRecInvariants :: CGEnv -> [Var] -> CGEnv
- addArgument :: CGEnv -> Var -> CGEnv
- addArguments :: CGEnv -> [Var] -> CGEnv
Constraint Generation Monad
Constraint information
Generation: Types ---------------------------------------------------------
CGInfo | |
|
Constraint Generation Environment
CGE | |
|
Logical constraints (FIXME: related to bounds?)
Fixpoint environment
Fixpoint Environment ------------------------------------------------------
insertsFEnv :: FEnv -> [((Symbol, Sort), BindId)] -> FEnv Source #
Hole Environment
fromListHEnv :: [Symbol] -> HEnv Source #