liquidhaskell-0.3.1.0: Liquid Types for Haskell

Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.PredType

Contents

Synopsis

Documentation

data DataConP Source

Constructors

DataConP 

Fields

dc_loc :: !SourcePos
 
freeTyVars :: ![RTyVar]
 
freePred :: ![PVar RSort]
 
freeLabels :: ![Symbol]
 
tyConsts :: ![SpecType]

FIXME: WHAT IS THIS??

tyArgs :: ![(Symbol, SpecType)]

These are backwards, why??

tyRes :: !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.

pVartoRConc :: PVar t -> (Symbol, [(a, b, Expr)]) -> Refa Source

Dummy Type that represents _all_ abstract-predicates

predType :: Type Source

Interface: Modified CoreSyn.exprType due to predApp -------------------

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]`