| Safe Haskell | Safe-Infered |
|---|
Language.Haskell.Liquid.PredType
- type PrType = RRType Predicate
- data TyConP = TyConP {
- freeTyVarsTy :: ![RTyVar]
- freePredTy :: ![PVar RSort]
- data DataConP = DataConP {}
- dataConTy :: HashMap RTyVar (RType Class RTyCon RTyVar Predicate) -> Type -> RType Class RTyCon RTyVar Predicate
- dataConPSpecType :: DataConP -> SpecType
- makeTyConInfo :: [(TyCon, TyConP)] -> HashMap TyCon RTyCon
- unify :: Maybe PrType -> SpecType -> SpecType
- replacePreds :: String -> SpecType -> [(RPVar, Ref RReft SpecType)] -> SpecType
- exprType :: CoreExpr -> Type
- predType :: Type
- replacePredsWithRefs :: (UsedPVar, (Symbol, [((), Symbol, Expr)]) -> Refa) -> UReft FReft -> UReft FReft
- pVartoRConc :: PVar t -> (Symbol, [(a, b, Expr)]) -> Refa
- toPredType :: Reftable r => PVar (RType Class RTyCon RTyVar a) -> RRType r
- substParg :: Functor f => (Symbol, Expr) -> f Predicate -> f Predicate
Documentation
Constructors
| TyConP | |
Fields
| |
Instances
Constructors
| DataConP | |
Instances
dataConTy :: HashMap RTyVar (RType Class RTyCon RTyVar Predicate) -> Type -> RType Class RTyCon RTyVar PredicateSource
replacePreds :: String -> SpecType -> [(RPVar, Ref RReft SpecType)] -> SpecTypeSource
This is the main function used to substitute an (abstract) predicate
with a concrete Ref, of a compound (RPoly) 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 PVar in the target.