Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- type CG = State CGInfo
- data CGInfo = CGInfo {
- fEnv :: !(SEnv Sort)
- hsCs :: ![SubC]
- hsWfs :: ![WfC]
- fixCs :: ![FixSubC]
- fixWfs :: ![FixWfC]
- freshIndex :: !Integer
- binds :: !BindEnv
- ebinds :: ![BindId]
- annotMap :: !(AnnInfo (Annot SpecType))
- holesMap :: !(HashMap Var (HoleInfo (CGInfo, CGEnv) SpecType))
- tyConInfo :: !TyConMap
- specDecr :: ![(Var, [Int])]
- newTyEnv :: !(HashMap TyCon SpecType)
- termExprs :: !(HashMap Var [Located Expr])
- specLVars :: !(HashSet Var)
- specLazy :: !(HashSet Var)
- specTmVars :: !(HashSet Var)
- autoSize :: !(HashSet TyCon)
- tyConEmbed :: !(TCEmb TyCon)
- kuts :: !Kuts
- kvPacks :: ![HashSet KVar]
- cgLits :: !(SEnv Sort)
- cgConsts :: !(SEnv Sort)
- cgADTs :: ![DataDecl]
- tcheck :: !Bool
- pruneRefs :: !Bool
- logErrors :: ![Error]
- kvProf :: !KVProf
- recCount :: !Int
- bindSpans :: HashMap BindId SrcSpan
- allowHO :: !Bool
- ghcI :: !TargetInfo
- dataConTys :: ![(Var, SpecType)]
- unsorted :: !Templates
- data CGEnv = CGE {
- cgLoc :: !SpanStack
- renv :: !REnv
- syenv :: !(SEnv Var)
- denv :: !RDEnv
- litEnv :: !(SEnv Sort)
- constEnv :: !(SEnv Sort)
- fenv :: !FEnv
- recs :: !(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)
- forallcb :: !(HashMap Var Expr)
- holes :: !HEnv
- lcs :: !LConstraint
- cerr :: !(Maybe (TError SpecType))
- cgInfo :: !TargetInfo
- 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
- getTemplates :: CG Templates
Constraint Generation Monad
Constraint information
Generation: Types ---------------------------------------------------------
CGInfo | |
|
Instances
NFData CGInfo # | |
Defined in Language.Haskell.Liquid.Constraint.Types | |
PPrint CGInfo # | |
Defined in Language.Haskell.Liquid.Constraint.Types pprintTidy :: Tidy -> CGInfo -> Doc # pprintPrec :: Int -> Tidy -> CGInfo -> Doc # | |
Freshable CG Integer # | This is all hardwiring stuff to CG ---------------------------------------- |
Constraint Generation Environment
CGE | |
|
Instances
Show CGEnv # | |
NFData CGEnv # | |
Defined in Language.Haskell.Liquid.Constraint.Types | |
PPrint CGEnv # | |
Defined in Language.Haskell.Liquid.Constraint.Types pprintTidy :: Tidy -> CGEnv -> Doc # pprintPrec :: Int -> Tidy -> CGEnv -> Doc # | |
HasConfig CGEnv # | |
Defined in Language.Haskell.Liquid.Constraint.Types |
Logical constraints (FIXME: related to bounds?)
data LConstraint #
Instances
Semigroup LConstraint # | |
Defined in Language.Haskell.Liquid.Constraint.Types (<>) :: LConstraint -> LConstraint -> LConstraint # sconcat :: NonEmpty LConstraint -> LConstraint # stimes :: Integral b => b -> LConstraint -> LConstraint # | |
Monoid LConstraint # | |
Defined in Language.Haskell.Liquid.Constraint.Types mempty :: LConstraint # mappend :: LConstraint -> LConstraint -> LConstraint # mconcat :: [LConstraint] -> LConstraint # |
Fixpoint environment
Fixpoint Environment ------------------------------------------------------
insertsFEnv :: FEnv -> [((Symbol, Sort), BindId)] -> FEnv #
Hole Environment
fromListHEnv :: [Symbol] -> HEnv #
Subtyping Constraints
Subtyping Constraints -----------------------------------------------------
Instances
NFData SubC # | |
Defined in Language.Haskell.Liquid.Constraint.Types | |
PPrint SubC # | |
Defined in Language.Haskell.Liquid.Constraint.Types pprintTidy :: Tidy -> SubC -> Doc # pprintPrec :: Int -> Tidy -> SubC -> Doc # |
Well-formedness Constraints
Instances
NFData WfC # | |
Defined in Language.Haskell.Liquid.Constraint.Types | |
PPrint WfC # | |
Defined in Language.Haskell.Liquid.Constraint.Types pprintTidy :: Tidy -> WfC -> Doc # pprintPrec :: Int -> Tidy -> WfC -> Doc # |
Invariants
addRTyConInv :: RTyConInv -> SpecType -> SpecType #
Aliases?
mkRTyConIAl :: [(a, Located SpecType)] -> RTyConInv #
restoreInvariant :: CGEnv -> RTyConInv -> CGEnv #
makeRecInvariants :: CGEnv -> [Var] -> CGEnv #
getTemplates :: CG Templates #