| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Haskell.Liquid.PredType
Contents
- type PrType = RRType Predicate
- data TyConP = TyConP {
- freeTyVarsTy :: ![RTyVar]
- freePredTy :: ![PVar RSort]
- freeLabelTy :: ![Symbol]
- covPs :: ![Int]
- contravPs :: ![Int]
- sizeFun :: !(Maybe (Symbol -> Expr))
- data DataConP = DataConP {}
- dataConTy :: Monoid r => HashMap RTyVar (RType p RTyCon RTyVar r) -> Type -> RType p RTyCon RTyVar r
- dataConPSpecType :: DataCon -> DataConP -> SpecType
- makeTyConInfo :: [(TyCon, TyConP)] -> HashMap TyCon RTyCon
- unify :: Maybe PrType -> SpecType -> SpecType
- replacePreds :: String -> SpecType -> [(RPVar, SpecProp)] -> SpecType
- replacePredsWithRefs :: (UsedPVar, (Symbol, [((), Symbol, Expr)]) -> Refa) -> UReft Reft -> UReft Reft
- pVartoRConc :: PVar t -> (Symbol, [(a, b, Expr)]) -> Refa
- exprType :: CoreExpr -> Type
- predType :: Type
- pvarRType :: (PPrint r, Reftable r) => PVar RSort -> RRType r
- substParg :: Functor f => (Symbol, Expr) -> f Predicate -> f Predicate
- pApp :: Symbol -> [Expr] -> Pred
- wiredSortedSyms :: [(Symbol, Sort)]
Documentation
Constructors
| DataConP | |
dataConTy :: Monoid r => HashMap RTyVar (RType p RTyCon RTyVar r) -> Type -> RType p RTyCon RTyVar r Source
dataConPSpecType :: DataCon -> DataConP -> SpecType Source
unify :: Maybe PrType -> SpecType -> SpecType Source
Unify PrType with SpecType -------------------------------------------
replacePreds :: String -> SpecType -> [(RPVar, SpecProp)] -> SpecType Source
Instantiate PVar with RTProp -----------------------------------------------
replacePreds is the main function used to substitute an (abstract)
predicate with a concrete Ref, that is either an RProp or RHProp
type. The substitution is invoked to obtain the SpecType resulting
at predicate application sites in Constraint.
The range of the PVar substitutions are fresh or true RefType.
That is, there are no further _quantified_ PVar in the target.
replacePredsWithRefs :: (UsedPVar, (Symbol, [((), Symbol, Expr)]) -> Refa) -> UReft Reft -> UReft Reft Source
Compute Type of GHC CoreExpr
Dummy Type that represents _all_ abstract-predicates
Compute RType of a given PVar
pvarRType :: (PPrint r, Reftable r) => PVar RSort -> RRType r Source
pvarRType π returns a trivial RType corresponding to the
function signature for a PVar π. For example, if
π :: T1 -> T2 -> T3 -> Prop
then pvarRType π returns an RType with an RTycon called
predRTyCon `RApp predRTyCon [T1, T2, T3]`
wiredSortedSyms :: [(Symbol, Sort)] Source