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])]
- termExprs :: !(HashMap Var [Expr])
- specLVars :: !(HashSet Var)
- specLazy :: !(HashSet Var)
- autoSize :: !(HashSet TyCon)
- tyConEmbed :: !(TCEmb TyCon)
- kuts :: !Kuts
- lits :: ![(Symbol, Sort)]
- tcheck :: !Bool
- scheck :: !Bool
- trustghc :: !Bool
- pruneRefs :: !Bool
- logErrors :: ![Error]
- kvProf :: !KVProf
- recCount :: !Int
- bindSpans :: HashMap BindId SrcSpan
- allowHO :: !Bool
- data CGEnv = CGE {
- cgLoc :: !SpanStack
- renv :: !REnv
- syenv :: !(SEnv Var)
- denv :: !RDEnv
- fenv :: !FEnv
- recs :: !(HashSet Var)
- invs :: !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))
- 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
- data WfC = WfC !CGEnv !SpecType
- type FixWfC = WfC Cinfo
- type RTyConInv = HashMap RTyCon [SpecType]
- mkRTyConInv :: [Located SpecType] -> RTyConInv
- addRTyConInv :: RTyConInv -> SpecType -> SpecType
- addRInv :: RTyConInv -> (Var, SpecType) -> (Var, SpecType)
- type RTyConIAl = HashMap RTyCon [SpecType]
- mkRTyConIAl :: [(a, Located SpecType)] -> RTyConInv
Constraint Generation Monad
Constraint information
Generation: Types ---------------------------------------------------------
CGInfo | |
|
Constraint Generation Environment
CGE | |
|
Logical constraints (FIXME: related to bounds?)
Fixpoint environment
Fixpoint Environment ------------------------------------------------------
Hole Environment
fromListHEnv :: [Symbol] -> HEnv Source
Subtyping Constraints
Well-formedness Constraints
Invariants
type RTyConInv = HashMap RTyCon [SpecType] Source
Helper Types: Invariants --------------------------------------------------
mkRTyConInv :: [Located SpecType] -> RTyConInv Source
addRTyConInv :: RTyConInv -> SpecType -> SpecType Source
Aliases?
mkRTyConIAl :: [(a, Located SpecType)] -> RTyConInv Source