| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Haskell.Liquid.Types.RType
Contents
- Bare Type Constructors and Variables
- Refined Type Constructors
- Refinement Types
- Classes describing operations on
RTypes - Type Variables
- Predicate Variables
- Manipulating
Predicates - Refinements
- Parse-time entities describing refined data types
- Pre-instantiated RType
- Instantiated RType
- Printer Configuration
- Refined Function Info
- Reftable/UReftable Instances
- Orphan instances
Description
This module contains the types to represent refinement types.
Synopsis
- data BTyCon = BTyCon {}
- mkBTyCon :: Located LHName -> BTyCon
- isClassBTyCon :: BTyCon -> Bool
- newtype BTyVar = BTV LocSymbol
- data RTyCon = RTyCon TyCon ![RPVar] !TyConInfo
- data TyConInfo = TyConInfo {}
- defaultTyConInfo :: TyConInfo
- rTyConPVs :: RTyCon -> [RPVar]
- isClassType :: TyConable c => RTypeV v c t t1 -> Bool
- isEqType :: TyConable c => RTypeV v c t t1 -> Bool
- isRVar :: RType c tv r -> Bool
- isBool :: RType RTyCon t t1 -> Bool
- isEmbeddedClass :: TyConable c => RTypeV v c t t1 -> Bool
- type RType c tv r = RTypeV Symbol c tv r
- data RTypeV v c tv r
- data Ref τ t = RProp {}
- type RTProp c tv r = RTPropV Symbol c tv r
- type RTPropV v c tv r = Ref (RTypeV v c tv ()) (RTypeV v c tv r)
- rPropP :: [(Symbol, τ)] -> r -> Ref τ (RTypeV v c tv r)
- newtype RTyVar = RTV TyVar
- type OkRT c tv r = (TyConable c, PPrint tv, PPrint c, PPrint r, Reftable r, Reftable (RTProp c tv ()), Reftable (RTProp c tv r), Eq c, Eq tv, Hashable tv)
- class Eq c => TyConable c where
- data RTVar tv s = RTVar {
- ty_var_value :: tv
- ty_var_info :: RTVInfo s
- data RTVInfo s
- = RTVNoInfo {
- rtv_is_pol :: Bool
- | RTVInfo {
- rtv_name :: Symbol
- rtv_kind :: s
- rtv_is_val :: Bool
- rtv_is_pol :: Bool
- = RTVNoInfo {
- makeRTVar :: tv -> RTVar tv s
- mapTyVarValue :: (tv1 -> tv2) -> RTVar tv1 s -> RTVar tv2 s
- dropTyVarInfo :: RTVar tv s1 -> RTVar tv s2
- rTVarToBind :: RTVar RTyVar s -> Maybe (Symbol, s)
- setRtvPol :: RTVar tv a -> Bool -> RTVar tv a
- type PVar t = PVarV Symbol t
- data PVarV v t = PV {}
- pvType :: PVarV v t -> t
- type Predicate = PredicateV Symbol
- newtype PredicateV v = Pr [UsedPVarV v]
- emapExprVM :: Monad m => ([Symbol] -> v -> m v') -> ExprV v -> m (ExprV v')
- mapPredicateV :: (v -> v') -> PredicateV v -> PredicateV v'
- emapPredicateVM :: Monad m => ([Symbol] -> v -> m v') -> PredicateV v -> m (PredicateV v')
- mapPVarV :: (v -> v') -> (t -> t') -> PVarV v t -> PVarV v' t'
- emapPVarVM :: Monad m => ([Symbol] -> v -> m v') -> ([Symbol] -> t -> m t') -> PVarV v t -> m (PVarV v' t')
- emapSubstVM :: Monad m => ([Symbol] -> v -> m v') -> SubstV v -> m (SubstV v')
- pvars :: Predicate -> [UsedPVar]
- pappSym :: Show a => a -> Symbol
- pApp :: Symbol -> [Expr] -> Expr
- type UReft r = UReftV Symbol r
- data UReftV v r = MkUReft {
- ur_reft :: !r
- ur_pred :: !(PredicateV v)
- mapUReftV :: (v -> v') -> (r -> r') -> UReftV v r -> UReftV v' r'
- emapUReftVM :: Monad m => ([Symbol] -> v -> m v') -> (r -> m r') -> UReftV v r -> m (UReftV v' r')
- type SizeFun = SizeFunV Symbol
- data SizeFunV v
- = IdSizeFun
- | SymSizeFun (Located v)
- szFun :: SizeFun -> Symbol -> Expr
- data TyConP = TyConP {
- tcpLoc :: !SourcePos
- tcpCon :: !TyCon
- tcpFreeTyVarsTy :: ![RTyVar]
- tcpFreePredTy :: ![PVar RSort]
- tcpVarianceTs :: !VarianceInfo
- tcpVariancePs :: !VarianceInfo
- tcpSizeFun :: !(Maybe SizeFun)
- type RRType = RTypeV Symbol RTyCon RTyVar
- type RRProp r = Ref RSort (RRType r)
- type BRType = RTypeV Symbol BTyCon BTyVar
- type BRProp r = BRPropV Symbol r
- type BRPropV v r = Ref (BSortV v) (BRTypeV v r)
- type BSort = BRType ()
- type BSortV v = BRTypeV v ()
- type BPVar = PVar BSort
- type RTVU c tv = RTVUV Symbol c tv
- type PVU c tv = PVUV Symbol c tv
- type BareType = BareTypeV Symbol
- type BareTypeLHName = BareTypeV LHName
- type BareTypeParsed = BareTypeV LocSymbol
- type BareTypeV v = BRTypeV v (RReftV v)
- type SpecType = RRType RReft
- type SpecProp = RRProp RReft
- type SpecRTVar = RTVar RTyVar RSort
- type LocBareType = Located BareType
- type LocBareTypeLHName = Located BareTypeLHName
- type LocBareTypeParsed = Located BareTypeParsed
- type LocSpecType = Located SpecType
- type RSort = RRType ()
- type UsedPVar = UsedPVarV Symbol
- type UsedPVarV v = PVarV v ()
- type RPVar = PVar RSort
- type RReft = RReftV Symbol
- type RReftV v = UReftV v (ReftV v)
- data PPEnv = PP {}
- ppEnv :: PPEnv
- ppEnvShort :: PPEnv -> PPEnv
- newtype RFInfo = RFInfo {}
- defRFInfo :: RFInfo
- mkRFInfo :: Config -> RFInfo
- classRFInfo :: Bool -> RFInfo
- class (Monoid r, Subable r) => Reftable r where
- class Reftable r => UReftable r where
- class ToReftV r where
Bare Type Constructors and Variables
Constructors
| BTyCon | |
Instances
isClassBTyCon :: BTyCon -> Bool Source #
Instances
| Binary BTyVar Source # | |||||
| NFData BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Data BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BTyVar -> c BTyVar # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BTyVar # toConstr :: BTyVar -> Constr # dataTypeOf :: BTyVar -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BTyVar) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BTyVar) # gmapT :: (forall b. Data b => b -> b) -> BTyVar -> BTyVar # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BTyVar -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BTyVar -> r # gmapQ :: (forall d. Data d => d -> u) -> BTyVar -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> BTyVar -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> BTyVar -> m BTyVar # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BTyVar -> m BTyVar # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BTyVar -> m BTyVar # | |||||
| Generic BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show BTyVar Source # | |||||
| Show BareSpec Source # | |||||
| Eq BTyVar Source # | |||||
| Ord DataDecl Source # | |||||
Defined in Language.Haskell.Liquid.Types.DataDecl | |||||
| Ord BTyVar Source # | |||||
| Hashable BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Symbolic BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| PPrint BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Expand DataCtor Source # | |||||
| Expand DataDecl Source # | |||||
| Expand BareType Source # |
| ||||
| Expand BareDef Source # | |||||
| Expand BareMeasure Source # | |||||
Defined in Language.Haskell.Liquid.Bare.Expand Methods expand :: BareRTEnv -> SourcePos -> BareMeasure -> BareMeasure Source # | |||||
| Expand BareSpec Source # | |||||
| Expand BareRTAlias Source # | |||||
Defined in Language.Haskell.Liquid.Bare.Expand Methods expand :: BareRTEnv -> SourcePos -> BareRTAlias -> BareRTAlias Source # | |||||
| FreeVar BTyCon BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| SubsTy BTyVar BSort BSort Source # | |||||
| SubsTy BTyVar BSort BTyCon Source # | |||||
| SubsTy Symbol Symbol (BRType r) Source # | |||||
| SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # | |||||
| SubsTy BTyVar (RType BTyCon BTyVar ()) Sort Source # | |||||
| SubsTy BTyVar (RType c BTyVar ()) BTyVar Source # | |||||
| SubsTy BTyVar (RType c BTyVar ()) (RTVar BTyVar (RType c BTyVar ())) Source # | |||||
| Expand (BRType ()) Source # | |||||
| Reftable (RTProp BTyCon BTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # meet :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # toReft :: RTProp BTyCon BTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp BTyCon BTyVar (UReft Reft) Source # | |||||
| Reftable (RTProp BTyCon BTyVar ()) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar () -> Bool Source # ppTy :: RTProp BTyCon BTyVar () -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # meet :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # | |||||
| Reftable (RType BTyCon BTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RType BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # meet :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # | |||||
| type Rep BTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
Refined Type Constructors
Instances
| NFData RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| NFData REnv Source # | |||||
Defined in Language.Haskell.Liquid.Types.Types | |||||
| Monoid REnv Source # | |||||
| Semigroup REnv Source # | |||||
| Data RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RTyCon -> c RTyCon # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RTyCon # toConstr :: RTyCon -> Constr # dataTypeOf :: RTyCon -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RTyCon) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RTyCon) # gmapT :: (forall b. Data b => b -> b) -> RTyCon -> RTyCon # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RTyCon -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RTyCon -> r # gmapQ :: (forall d. Data d => d -> u) -> RTyCon -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RTyCon -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RTyCon -> m RTyCon # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RTyCon -> m RTyCon # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RTyCon -> m RTyCon # | |||||
| Exception Error Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: Error -> SomeException # fromException :: SomeException -> Maybe Error # displayException :: Error -> String # backtraceDesired :: Error -> Bool # | |||||
| Generic RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show RTyCon Source # | |||||
| Show Error Source # | |||||
| Eq RTyCon Source # | |||||
| Hashable RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| Symbolic RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Fixpoint RTyCon Source # | |||||
| PPrint RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| PPrint Error Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy | |||||
| Expand SpecType Source # |
| ||||
| REq SpecType Source # | |||||
| TyConable RTyCon Source # | TyConable Instances ------------------------------------------------------- | ||||
Defined in Language.Haskell.Liquid.Types.RType Methods isFun :: RTyCon -> Bool Source # isList :: RTyCon -> Bool Source # isTuple :: RTyCon -> Bool Source # ppTycon :: RTyCon -> Doc Source # isClass :: RTyCon -> Bool Source # isEmbeddedDict :: RTyCon -> Bool Source # isEqual :: RTyCon -> Bool Source # isOrdCls :: RTyCon -> Bool Source # isEqCls :: RTyCon -> Bool Source # | |||||
| Result Error Source # | |||||
| FreeVar RTyCon RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| SubsTy TyVar Type SpecType Source # | |||||
| SubsTy Symbol RSort Sort Source # | |||||
| SubsTy RTyVar RSort Sort Source # | |||||
| SubsTy RTyVar RSort RSort Source # | |||||
| SubsTy RTyVar RSort RTyCon Source # | |||||
| SubsTy RTyVar RSort SpecType Source # | |||||
| SubsTy RTyVar RTyVar SpecType Source # | |||||
| SubsTy tv RSort Predicate Source # | |||||
| (Freshable m Integer, Freshable m r, Reftable r) => Freshable m (RRType r) Source # | |||||
| SubsTy RTyVar (RType RTyCon RTyVar ()) RTyVar Source # | |||||
| SubsTy RTyVar (RType RTyCon RTyVar ()) (RTVar RTyVar (RType RTyCon RTyVar ())) Source # | |||||
| Exception [Error] Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: [Error] -> SomeException # fromException :: SomeException -> Maybe [Error] # displayException :: [Error] -> String # backtraceDesired :: [Error] -> Bool # | |||||
| PPrint (CtxError SpecType) Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy | |||||
| Subable (RRProp Reft) Source # | Subable Instances ----------------------------------------------------- | ||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| Result [Error] Source # | |||||
| Reftable (RTProp RTyCon RTyVar Reft) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar Reft -> Bool Source # ppTy :: RTProp RTyCon RTyVar Reft -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # meet :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # | |||||
| Reftable (RTProp RTyCon RTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp RTyCon RTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # meet :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # toReft :: RTProp RTyCon RTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp RTyCon RTyVar (UReft Reft) Source # | |||||
| Reftable (RTProp RTyCon RTyVar ()) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar () -> Bool Source # ppTy :: RTProp RTyCon RTyVar () -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # meet :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # | |||||
| (PPrint r, Reftable r, SubsTy RTyVar (RType RTyCon RTyVar ()) r, Reftable (RTProp RTyCon RTyVar r)) => Reftable (RType RTyCon RTyVar r) Source # | Reftable Instances ------------------------------------------------------- | ||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType RTyCon RTyVar r -> Bool Source # ppTy :: RType RTyCon RTyVar r -> Doc -> Doc Source # top :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # meet :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # | |||||
| type Rep RTyCon Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep RTyCon = D1 ('MetaData "RTyCon" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "RTyCon" 'PrefixI 'True) (S1 ('MetaSel ('Just "rtc_tc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyCon) :*: (S1 ('MetaSel ('Just "rtc_pvars") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [RPVar]) :*: S1 ('MetaSel ('Just "rtc_info") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyConInfo)))) | |||||
Co- and Contra-variance for TyCon --------------------------------
Indexes start from 0 and type or predicate arguments can be both covariant and contravaariant e.g., for the below Foo dataType
data Foo a b c d :: b - Prop, q :: Int -> Prop, r :: a -> Prop> = F (ar -> bp) | Q (c -> a) | G (Intq -> ar)
there will be:
varianceTyArgs = [Bivariant , Covariant, Contravatiant, Invariant] variancePsArgs = [Covariant, Contravatiant, Bivariant]
Constructors
| TyConInfo | |
Fields
| |
Instances
| NFData TyConInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Data TyConInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyConInfo -> c TyConInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyConInfo # toConstr :: TyConInfo -> Constr # dataTypeOf :: TyConInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyConInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyConInfo) # gmapT :: (forall b. Data b => b -> b) -> TyConInfo -> TyConInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyConInfo -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyConInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> TyConInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyConInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyConInfo -> m TyConInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConInfo -> m TyConInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConInfo -> m TyConInfo # | |||||
| Generic TyConInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show TyConInfo Source # | |||||
| type Rep TyConInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep TyConInfo = D1 ('MetaData "TyConInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "TyConInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "varianceTyArgs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarianceInfo) :*: (S1 ('MetaSel ('Just "variancePsArgs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarianceInfo) :*: S1 ('MetaSel ('Just "sizeFunction") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe SizeFun))))) | |||||
Refinement Types
Constructors
| RVar | |
| RFun | |
| RAllT | |
| RAllP | "forall x y :: Nat, w :: Int . TYPE" ^^^^^^^^^^^^^^^^^^^ (rt_pvbind) |
| RApp | For example, in [a]- v > h}>, we apply (via |
| RAllE | |
| REx | |
| RExprArg (Located (ExprV v)) | For expression arguments to type aliases see testsposvector2.hs |
| RAppTy | |
| RRTy | |
| RHole r | let LH match against the Haskell type and add k-vars, e.g. `x:_` see testsposHoles.hs |
Instances
| NFData REnv Source # | |
Defined in Language.Haskell.Liquid.Types.Types | |
| Monoid REnv Source # | |
| Semigroup REnv Source # | |
| Exception Error Source # | |
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: Error -> SomeException # fromException :: SomeException -> Maybe Error # displayException :: Error -> String # backtraceDesired :: Error -> Bool # | |
| Show BareSpec Source # | |
| Show Error Source # | |
| Ord DataDecl Source # | |
Defined in Language.Haskell.Liquid.Types.DataDecl | |
| PPrint Error Source # | |
Defined in Language.Haskell.Liquid.UX.Tidy | |
| Expand DataCtor Source # | |
| Expand DataDecl Source # | |
| Expand BareType Source # |
|
| Expand SpecType Source # |
|
| Expand BareDef Source # | |
| Expand BareMeasure Source # | |
Defined in Language.Haskell.Liquid.Bare.Expand Methods expand :: BareRTEnv -> SourcePos -> BareMeasure -> BareMeasure Source # | |
| Expand BareSpec Source # | |
| Expand BareRTAlias Source # | |
Defined in Language.Haskell.Liquid.Bare.Expand Methods expand :: BareRTEnv -> SourcePos -> BareRTAlias -> BareRTAlias Source # | |
| REq SpecType Source # | |
| Result Error Source # | |
| SubsTy TyVar Type SpecType Source # | |
| SubsTy Symbol RSort Sort Source # | |
| SubsTy BTyVar BSort BSort Source # | |
| SubsTy BTyVar BSort BTyCon Source # | |
| SubsTy RTyVar RSort Sort Source # | |
| SubsTy RTyVar RSort RSort Source # | |
| SubsTy RTyVar RSort RTyCon Source # | |
| SubsTy RTyVar RSort SpecType Source # | |
| SubsTy RTyVar RTyVar SpecType Source # | |
| SubsTy tv RSort Predicate Source # | |
| SubsTy Symbol Symbol (BRType r) Source # | |
| SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # | |
| (SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv ())) => SubsTy tv ty (RTProp c tv (UReft r)) Source # | |
| (Freshable m Integer, Freshable m r, Reftable r) => Freshable m (RRType r) Source # | |
| SubsTy BTyVar (RType BTyCon BTyVar ()) Sort Source # | |
| SubsTy BTyVar (RType c BTyVar ()) BTyVar Source # | |
| SubsTy RTyVar (RType RTyCon RTyVar ()) RTyVar Source # | |
| SubsTy BTyVar (RType c BTyVar ()) (RTVar BTyVar (RType c BTyVar ())) Source # | |
| SubsTy RTyVar (RType RTyCon RTyVar ()) (RTVar RTyVar (RType RTyCon RTyVar ())) Source # | |
| Exception [Error] Source # | |
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: [Error] -> SomeException # fromException :: SomeException -> Maybe [Error] # displayException :: [Error] -> String # backtraceDesired :: [Error] -> Bool # | |
| PPrint (CtxError SpecType) Source # | |
Defined in Language.Haskell.Liquid.UX.Tidy | |
| Subable (RRProp Reft) Source # | Subable Instances ----------------------------------------------------- |
Defined in Language.Haskell.Liquid.Types.RefType | |
| Expand (BRType ()) Source # | |
| Result [Error] Source # | |
| Show tv => Show (RTVU c tv) Source # | |
| (PPrint r, PPrint t, PPrint (RType c tv r)) => PPrint (Ref t (RType c tv r)) Source # | |
Defined in Language.Haskell.Liquid.Types.RType | |
| (NFData c, NFData tv, NFData r) => NFData (RType c tv r) Source # | |
Defined in Language.Haskell.Liquid.Types.RType | |
| Functor (RTypeV v c tv) Source # | |
| (SubsTy tv (RType c tv ()) c, OkRT c tv r, FreeVar c tv, SubsTy tv (RType c tv ()) r, SubsTy tv (RType c tv ()) (RType c tv ()), SubsTy tv (RType c tv ()) tv, SubsTy tv (RType c tv ()) (RTVar tv (RType c tv ()))) => Monoid (RTProp c tv r) Source # | |
| (SubsTy tv (RType c tv ()) (RType c tv ()), SubsTy tv (RType c tv ()) c, OkRT c tv r, FreeVar c tv, SubsTy tv (RType c tv ()) r, SubsTy tv (RType c tv ()) tv, SubsTy tv (RType c tv ()) (RTVar tv (RType c tv ()))) => Monoid (RType c tv r) Source # | |
| (SubsTy tv (RType c tv ()) c, OkRT c tv r, FreeVar c tv, SubsTy tv (RType c tv ()) r, SubsTy tv (RType c tv ()) (RType c tv ()), SubsTy tv (RType c tv ()) tv, SubsTy tv (RType c tv ()) (RTVar tv (RType c tv ()))) => Semigroup (RTProp c tv r) Source # | |
| (SubsTy tv (RType c tv ()) (RType c tv ()), SubsTy tv (RType c tv ()) c, OkRT c tv r, FreeVar c tv, SubsTy tv (RType c tv ()) r, SubsTy tv (RType c tv ()) tv, SubsTy tv (RType c tv ()) (RTVar tv (RType c tv ()))) => Semigroup (RType c tv r) Source # | |
| Foldable (RTypeV v c tv) Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods fold :: Monoid m => RTypeV v c tv m -> m # foldMap :: Monoid m => (a -> m) -> RTypeV v c tv a -> m # foldMap' :: Monoid m => (a -> m) -> RTypeV v c tv a -> m # foldr :: (a -> b -> b) -> b -> RTypeV v c tv a -> b # foldr' :: (a -> b -> b) -> b -> RTypeV v c tv a -> b # foldl :: (b -> a -> b) -> b -> RTypeV v c tv a -> b # foldl' :: (b -> a -> b) -> b -> RTypeV v c tv a -> b # foldr1 :: (a -> a -> a) -> RTypeV v c tv a -> a # foldl1 :: (a -> a -> a) -> RTypeV v c tv a -> a # toList :: RTypeV v c tv a -> [a] # null :: RTypeV v c tv a -> Bool # length :: RTypeV v c tv a -> Int # elem :: Eq a => a -> RTypeV v c tv a -> Bool # maximum :: Ord a => RTypeV v c tv a -> a # minimum :: Ord a => RTypeV v c tv a -> a # | |
| Traversable (RTypeV v c tv) Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods traverse :: Applicative f => (a -> f b) -> RTypeV v c tv a -> f (RTypeV v c tv b) # sequenceA :: Applicative f => RTypeV v c tv (f a) -> f (RTypeV v c tv a) # mapM :: Monad m => (a -> m b) -> RTypeV v c tv a -> m (RTypeV v c tv b) # sequence :: Monad m => RTypeV v c tv (m a) -> m (RTypeV v c tv a) # | |
| PPrint (RTProp c tv r) => Show (RTProp c tv r) Source # | |
| PPrint (RType c tv r) => Show (RType c tv r) Source # | |
| (Eq c, Eq tv, Hashable tv, PPrint tv, TyConable c, PPrint c, Reftable (RTProp c tv ())) => Eq (RType c tv ()) Source # | |
| OkRT c tv r => PPrint (RType c tv r) Source # | Pretty Printing RefType --------------------------------------------------- |
Defined in Language.Haskell.Liquid.Types.PrettyPrint | |
| (Reftable r, TyConable c) => Subable (RTProp c tv r) Source # | |
Defined in Language.Haskell.Liquid.Types.RTypeOp | |
| (Subable r, Reftable r, TyConable c) => Subable (RType c tv r) Source # | |
Defined in Language.Haskell.Liquid.Types.RTypeOp | |
| Reftable (RTProp BTyCon BTyVar (UReft Reft)) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # meet :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # toReft :: RTProp BTyCon BTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp BTyCon BTyVar (UReft Reft) Source # | |
| Reftable (RTProp BTyCon BTyVar ()) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar () -> Bool Source # ppTy :: RTProp BTyCon BTyVar () -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # meet :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # | |
| Reftable (RTProp RTyCon RTyVar Reft) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar Reft -> Bool Source # ppTy :: RTProp RTyCon RTyVar Reft -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # meet :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # | |
| Reftable (RTProp RTyCon RTyVar (UReft Reft)) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp RTyCon RTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # meet :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # toReft :: RTProp RTyCon RTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp RTyCon RTyVar (UReft Reft) Source # | |
| Reftable (RTProp RTyCon RTyVar ()) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar () -> Bool Source # ppTy :: RTProp RTyCon RTyVar () -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # meet :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # | |
| Reftable (RType BTyCon BTyVar (UReft Reft)) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RType BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # meet :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # | |
| (PPrint r, Reftable r, SubsTy RTyVar (RType RTyCon RTyVar ()) r, Reftable (RTProp RTyCon RTyVar r)) => Reftable (RType RTyCon RTyVar r) Source # | Reftable Instances ------------------------------------------------------- |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType RTyCon RTyVar r -> Bool Source # ppTy :: RType RTyCon RTyVar r -> Doc -> Doc Source # top :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # meet :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # | |
| (Binary tv, Binary r, Binary c, Binary v) => Binary (RTypeV v c tv r) Source # | |
| (Data v, Data tv, Data c, Data r) => Data (RTypeV v c tv r) Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c0 (d -> b) -> d -> c0 b) -> (forall g. g -> c0 g) -> RTypeV v c tv r -> c0 (RTypeV v c tv r) # gunfold :: (forall b r0. Data b => c0 (b -> r0) -> c0 r0) -> (forall r1. r1 -> c0 r1) -> Constr -> c0 (RTypeV v c tv r) # toConstr :: RTypeV v c tv r -> Constr # dataTypeOf :: RTypeV v c tv r -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (RTypeV v c tv r)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (RTypeV v c tv r)) # gmapT :: (forall b. Data b => b -> b) -> RTypeV v c tv r -> RTypeV v c tv r # gmapQl :: (r0 -> r' -> r0) -> r0 -> (forall d. Data d => d -> r') -> RTypeV v c tv r -> r0 # gmapQr :: forall r0 r'. (r' -> r0 -> r0) -> r0 -> (forall d. Data d => d -> r') -> RTypeV v c tv r -> r0 # gmapQ :: (forall d. Data d => d -> u) -> RTypeV v c tv r -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RTypeV v c tv r -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RTypeV v c tv r -> m (RTypeV v c tv r) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RTypeV v c tv r -> m (RTypeV v c tv r) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RTypeV v c tv r -> m (RTypeV v c tv r) # | |
| Generic (RTypeV v c tv r) Source # | |
| (Eq tv, Eq v, Eq c, Eq r) => Eq (RTypeV v c tv r) Source # | |
| (Hashable tv, Hashable r, Hashable c, Hashable v) => Hashable (RTypeV v c tv r) Source # | |
Defined in Language.Haskell.Liquid.Types.RType | |
| type Rep (RTypeV v c tv r) Source # | |
Defined in Language.Haskell.Liquid.Types.RType | |
Ref describes `Prop τ` and HProp arguments applied to type constructors.
For example, in [a]- v > h}>, we apply (via RApp)
* the RProp denoted by `{h -> v > h}` to
* the RTyCon denoted by `[]`.
Thus, Ref is used for abstract-predicate (arguments) that are associated
with _type constructors_ i.e. whose semantics are _dependent upon_ the data-type.
In contrast, the Predicate argument in ur_pred in the UReft applies
directly to any type and has semantics _independent of_ the data-type.
Constructors
| RProp | |
Instances
| SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # | |||||
| (SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv ())) => SubsTy tv ty (RTProp c tv (UReft r)) Source # | |||||
| Functor (Ref τ) Source # | |||||
| Foldable (Ref τ) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods fold :: Monoid m => Ref τ m -> m # foldMap :: Monoid m => (a -> m) -> Ref τ a -> m # foldMap' :: Monoid m => (a -> m) -> Ref τ a -> m # foldr :: (a -> b -> b) -> b -> Ref τ a -> b # foldr' :: (a -> b -> b) -> b -> Ref τ a -> b # foldl :: (b -> a -> b) -> b -> Ref τ a -> b # foldl' :: (b -> a -> b) -> b -> Ref τ a -> b # foldr1 :: (a -> a -> a) -> Ref τ a -> a # foldl1 :: (a -> a -> a) -> Ref τ a -> a # elem :: Eq a => a -> Ref τ a -> Bool # maximum :: Ord a => Ref τ a -> a # minimum :: Ord a => Ref τ a -> a # | |||||
| Traversable (Ref τ) Source # | |||||
| Subable (RRProp Reft) Source # | Subable Instances ----------------------------------------------------- | ||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| (Binary τ, Binary t) => Binary (Ref τ t) Source # | |||||
| (NFData τ, NFData t) => NFData (Ref τ t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (Data τ, Data t) => Data (Ref τ t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ref τ t -> c (Ref τ t) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ref τ t) # toConstr :: Ref τ t -> Constr # dataTypeOf :: Ref τ t -> DataType # dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (Ref τ t)) # dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (Ref τ t)) # gmapT :: (forall b. Data b => b -> b) -> Ref τ t -> Ref τ t # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ref τ t -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ref τ t -> r # gmapQ :: (forall d. Data d => d -> u) -> Ref τ t -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Ref τ t -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ref τ t -> m (Ref τ t) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ref τ t -> m (Ref τ t) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ref τ t -> m (Ref τ t) # | |||||
| Generic (Ref τ t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| (Eq τ, Eq t) => Eq (Ref τ t) Source # | |||||
| (Hashable τ, Hashable t) => Hashable (Ref τ t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (PPrint r, PPrint t, PPrint (RType c tv r)) => PPrint (Ref t (RType c tv r)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| REq t2 => REq (Ref t1 t2) Source # | |||||
| (SubsTy tv (RType c tv ()) c, OkRT c tv r, FreeVar c tv, SubsTy tv (RType c tv ()) r, SubsTy tv (RType c tv ()) (RType c tv ()), SubsTy tv (RType c tv ()) tv, SubsTy tv (RType c tv ()) (RTVar tv (RType c tv ()))) => Monoid (RTProp c tv r) Source # | |||||
| (SubsTy tv (RType c tv ()) c, OkRT c tv r, FreeVar c tv, SubsTy tv (RType c tv ()) r, SubsTy tv (RType c tv ()) (RType c tv ()), SubsTy tv (RType c tv ()) tv, SubsTy tv (RType c tv ()) (RTVar tv (RType c tv ()))) => Semigroup (RTProp c tv r) Source # | |||||
| PPrint (RTProp c tv r) => Show (RTProp c tv r) Source # | |||||
| (Reftable r, TyConable c) => Subable (RTProp c tv r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RTypeOp | |||||
| Reftable (RTProp BTyCon BTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # meet :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # toReft :: RTProp BTyCon BTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp BTyCon BTyVar (UReft Reft) Source # | |||||
| Reftable (RTProp BTyCon BTyVar ()) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar () -> Bool Source # ppTy :: RTProp BTyCon BTyVar () -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # meet :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # | |||||
| Reftable (RTProp RTyCon RTyVar Reft) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar Reft -> Bool Source # ppTy :: RTProp RTyCon RTyVar Reft -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # meet :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # | |||||
| Reftable (RTProp RTyCon RTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp RTyCon RTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # meet :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # toReft :: RTProp RTyCon RTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp RTyCon RTyVar (UReft Reft) Source # | |||||
| Reftable (RTProp RTyCon RTyVar ()) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar () -> Bool Source # ppTy :: RTProp RTyCon RTyVar () -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # meet :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # | |||||
| type Rep (Ref τ t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (Ref τ t) = D1 ('MetaData "Ref" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "RProp" 'PrefixI 'True) (S1 ('MetaSel ('Just "rf_args") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Symbol, τ)]) :*: S1 ('MetaSel ('Just "rf_body") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 t))) | |||||
type RTProp c tv r = RTPropV Symbol c tv r Source #
RTProp is a convenient alias for Ref that will save a bunch of typing.
In general, perhaps we need not expose Ref directly at all.
Instances
| NFData RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| NFData REnv Source # | |||||
Defined in Language.Haskell.Liquid.Types.Types | |||||
| Monoid REnv Source # | |||||
| Semigroup REnv Source # | |||||
| Data RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RTyVar -> c RTyVar # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RTyVar # toConstr :: RTyVar -> Constr # dataTypeOf :: RTyVar -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RTyVar) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RTyVar) # gmapT :: (forall b. Data b => b -> b) -> RTyVar -> RTyVar # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RTyVar -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RTyVar -> r # gmapQ :: (forall d. Data d => d -> u) -> RTyVar -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RTyVar -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RTyVar -> m RTyVar # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RTyVar -> m RTyVar # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RTyVar -> m RTyVar # | |||||
| Exception Error Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: Error -> SomeException # fromException :: SomeException -> Maybe Error # displayException :: Error -> String # backtraceDesired :: Error -> Bool # | |||||
| Generic RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show RTyVar Source # | Printing Refinement Types ------------------------------------------------- | ||||
| Show Error Source # | |||||
| Eq RTyVar Source # | Wrappers for GHC Type Elements -------------------------------------------- | ||||
| Ord RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| Hashable RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| Symbolic RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| PPrint RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| PPrint Error Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy | |||||
| Expand SpecType Source # |
| ||||
| REq SpecType Source # | |||||
| Result Error Source # | |||||
| FreeVar RTyCon RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| SubsTy TyVar Type SpecType Source # | |||||
| SubsTy Symbol RSort Sort Source # | |||||
| SubsTy RTyVar RSort Sort Source # | |||||
| SubsTy RTyVar RSort RSort Source # | |||||
| SubsTy RTyVar RSort RTyCon Source # | |||||
| SubsTy RTyVar RSort SpecType Source # | |||||
| SubsTy RTyVar RTyVar SpecType Source # | |||||
| SubsTy tv RSort Predicate Source # | |||||
| (Freshable m Integer, Freshable m r, Reftable r) => Freshable m (RRType r) Source # | |||||
| SubsTy RTyVar (RType RTyCon RTyVar ()) RTyVar Source # | |||||
| SubsTy RTyVar (RType RTyCon RTyVar ()) (RTVar RTyVar (RType RTyCon RTyVar ())) Source # | |||||
| Exception [Error] Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: [Error] -> SomeException # fromException :: SomeException -> Maybe [Error] # displayException :: [Error] -> String # backtraceDesired :: [Error] -> Bool # | |||||
| PPrint (CtxError SpecType) Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy | |||||
| Subable (RRProp Reft) Source # | Subable Instances ----------------------------------------------------- | ||||
Defined in Language.Haskell.Liquid.Types.RefType | |||||
| Result [Error] Source # | |||||
| Reftable (RTProp RTyCon RTyVar Reft) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar Reft -> Bool Source # ppTy :: RTProp RTyCon RTyVar Reft -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # meet :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # | |||||
| Reftable (RTProp RTyCon RTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp RTyCon RTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # meet :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # toReft :: RTProp RTyCon RTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp RTyCon RTyVar (UReft Reft) Source # | |||||
| Reftable (RTProp RTyCon RTyVar ()) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar () -> Bool Source # ppTy :: RTProp RTyCon RTyVar () -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # meet :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # | |||||
| (PPrint r, Reftable r, SubsTy RTyVar (RType RTyCon RTyVar ()) r, Reftable (RTProp RTyCon RTyVar r)) => Reftable (RType RTyCon RTyVar r) Source # | Reftable Instances ------------------------------------------------------- | ||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType RTyCon RTyVar r -> Bool Source # ppTy :: RType RTyCon RTyVar r -> Doc -> Doc Source # top :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # meet :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # | |||||
| type Rep RTyVar Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
type OkRT c tv r = (TyConable c, PPrint tv, PPrint c, PPrint r, Reftable r, Reftable (RTProp c tv ()), Reftable (RTProp c tv r), Eq c, Eq tv, Hashable tv) Source #
Classes describing operations on RTypes
class Eq c => TyConable c where Source #
Methods
isEmbeddedDict :: c -> Bool Source #
isOrdCls :: c -> Bool Source #
Instances
| TyConable TyCon Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods isFun :: TyCon -> Bool Source # isList :: TyCon -> Bool Source # isTuple :: TyCon -> Bool Source # ppTycon :: TyCon -> Doc Source # isClass :: TyCon -> Bool Source # isEmbeddedDict :: TyCon -> Bool Source # isEqual :: TyCon -> Bool Source # isOrdCls :: TyCon -> Bool Source # isEqCls :: TyCon -> Bool Source # | |
| TyConable LocSymbol Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods isFun :: LocSymbol -> Bool Source # isList :: LocSymbol -> Bool Source # isTuple :: LocSymbol -> Bool Source # ppTycon :: LocSymbol -> Doc Source # isClass :: LocSymbol -> Bool Source # isEmbeddedDict :: LocSymbol -> Bool Source # isEqual :: LocSymbol -> Bool Source # isOrdCls :: LocSymbol -> Bool Source # isEqCls :: LocSymbol -> Bool Source # | |
| TyConable Symbol Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods isFun :: Symbol -> Bool Source # isList :: Symbol -> Bool Source # isTuple :: Symbol -> Bool Source # ppTycon :: Symbol -> Doc Source # isClass :: Symbol -> Bool Source # isEmbeddedDict :: Symbol -> Bool Source # isEqual :: Symbol -> Bool Source # isOrdCls :: Symbol -> Bool Source # isEqCls :: Symbol -> Bool Source # | |
| TyConable BTyCon Source # | |
Defined in Language.Haskell.Liquid.Types.RType Methods isFun :: BTyCon -> Bool Source # isList :: BTyCon -> Bool Source # isTuple :: BTyCon -> Bool Source # ppTycon :: BTyCon -> Doc Source # isClass :: BTyCon -> Bool Source # isEmbeddedDict :: BTyCon -> Bool Source # isEqual :: BTyCon -> Bool Source # isOrdCls :: BTyCon -> Bool Source # isEqCls :: BTyCon -> Bool Source # | |
| TyConable RTyCon Source # | TyConable Instances ------------------------------------------------------- |
Defined in Language.Haskell.Liquid.Types.RType Methods isFun :: RTyCon -> Bool Source # isList :: RTyCon -> Bool Source # isTuple :: RTyCon -> Bool Source # ppTycon :: RTyCon -> Doc Source # isClass :: RTyCon -> Bool Source # isEmbeddedDict :: RTyCon -> Bool Source # isEqual :: RTyCon -> Bool Source # isOrdCls :: RTyCon -> Bool Source # isEqCls :: RTyCon -> Bool Source # | |
Type Variables
Constructors
| RTVar | |
Fields
| |
Instances
| SubsTy BTyVar (RType c BTyVar ()) (RTVar BTyVar (RType c BTyVar ())) Source # | |||||
| SubsTy RTyVar (RType RTyCon RTyVar ()) (RTVar RTyVar (RType RTyCon RTyVar ())) Source # | |||||
| Functor (RTVar tv) Source # | |||||
| Foldable (RTVar tv) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods fold :: Monoid m => RTVar tv m -> m # foldMap :: Monoid m => (a -> m) -> RTVar tv a -> m # foldMap' :: Monoid m => (a -> m) -> RTVar tv a -> m # foldr :: (a -> b -> b) -> b -> RTVar tv a -> b # foldr' :: (a -> b -> b) -> b -> RTVar tv a -> b # foldl :: (b -> a -> b) -> b -> RTVar tv a -> b # foldl' :: (b -> a -> b) -> b -> RTVar tv a -> b # foldr1 :: (a -> a -> a) -> RTVar tv a -> a # foldl1 :: (a -> a -> a) -> RTVar tv a -> a # elem :: Eq a => a -> RTVar tv a -> Bool # maximum :: Ord a => RTVar tv a -> a # minimum :: Ord a => RTVar tv a -> a # | |||||
| Traversable (RTVar tv) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (Binary tv, Binary s) => Binary (RTVar tv s) Source # | |||||
| (NFData tv, NFData s) => NFData (RTVar tv s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (Data s, Data tv) => Data (RTVar tv s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RTVar tv s -> c (RTVar tv s) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (RTVar tv s) # toConstr :: RTVar tv s -> Constr # dataTypeOf :: RTVar tv s -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (RTVar tv s)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (RTVar tv s)) # gmapT :: (forall b. Data b => b -> b) -> RTVar tv s -> RTVar tv s # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RTVar tv s -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RTVar tv s -> r # gmapQ :: (forall d. Data d => d -> u) -> RTVar tv s -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RTVar tv s -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RTVar tv s -> m (RTVar tv s) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RTVar tv s -> m (RTVar tv s) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RTVar tv s -> m (RTVar tv s) # | |||||
| Generic (RTVar tv s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show tv => Show (RTVU c tv) Source # | |||||
| Eq tv => Eq (RTVar tv s) Source # | |||||
| (Hashable tv, Hashable s) => Hashable (RTVar tv s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| PPrint v => PPrint (RTVar v s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep (RTVar tv s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (RTVar tv s) = D1 ('MetaData "RTVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "RTVar" 'PrefixI 'True) (S1 ('MetaSel ('Just "ty_var_value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 tv) :*: S1 ('MetaSel ('Just "ty_var_info") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RTVInfo s)))) | |||||
Constructors
| RTVNoInfo | |
Fields
| |
| RTVInfo | |
Fields
| |
Instances
| Functor RTVInfo Source # | |||||
| Foldable RTVInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods fold :: Monoid m => RTVInfo m -> m # foldMap :: Monoid m => (a -> m) -> RTVInfo a -> m # foldMap' :: Monoid m => (a -> m) -> RTVInfo a -> m # foldr :: (a -> b -> b) -> b -> RTVInfo a -> b # foldr' :: (a -> b -> b) -> b -> RTVInfo a -> b # foldl :: (b -> a -> b) -> b -> RTVInfo a -> b # foldl' :: (b -> a -> b) -> b -> RTVInfo a -> b # foldr1 :: (a -> a -> a) -> RTVInfo a -> a # foldl1 :: (a -> a -> a) -> RTVInfo a -> a # elem :: Eq a => a -> RTVInfo a -> Bool # maximum :: Ord a => RTVInfo a -> a # minimum :: Ord a => RTVInfo a -> a # | |||||
| Traversable RTVInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Binary s => Binary (RTVInfo s) Source # | |||||
| NFData s => NFData (RTVInfo s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Data s => Data (RTVInfo s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RTVInfo s -> c (RTVInfo s) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (RTVInfo s) # toConstr :: RTVInfo s -> Constr # dataTypeOf :: RTVInfo s -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (RTVInfo s)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (RTVInfo s)) # gmapT :: (forall b. Data b => b -> b) -> RTVInfo s -> RTVInfo s # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RTVInfo s -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RTVInfo s -> r # gmapQ :: (forall d. Data d => d -> u) -> RTVInfo s -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RTVInfo s -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RTVInfo s -> m (RTVInfo s) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RTVInfo s -> m (RTVInfo s) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RTVInfo s -> m (RTVInfo s) # | |||||
| Generic (RTVInfo s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Eq s => Eq (RTVInfo s) Source # | |||||
| Hashable s => Hashable (RTVInfo s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep (RTVInfo s) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (RTVInfo s) = D1 ('MetaData "RTVInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "RTVNoInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "rtv_is_pol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :+: C1 ('MetaCons "RTVInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "rtv_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Symbol) :*: S1 ('MetaSel ('Just "rtv_kind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 s)) :*: (S1 ('MetaSel ('Just "rtv_is_val") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "rtv_is_pol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) | |||||
mapTyVarValue :: (tv1 -> tv2) -> RTVar tv1 s -> RTVar tv2 s Source #
dropTyVarInfo :: RTVar tv s1 -> RTVar tv s2 Source #
Predicate Variables
type PVar t = PVarV Symbol t Source #
Abstract Predicate Variables ----------------------------------
Instances
| Subable UsedPVar Source # | |||||
| SubsTy tv ty ty => SubsTy tv ty (PVar ty) Source # | |||||
| Functor (PVarV v) Source # | |||||
| PPrint (PVar a) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (Binary t, Binary v) => Binary (PVarV v t) Source # | |||||
| (NFData v, NFData t) => NFData (PVarV v t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (Data v, Data t) => Data (PVarV v t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PVarV v t -> c (PVarV v t) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (PVarV v t) # toConstr :: PVarV v t -> Constr # dataTypeOf :: PVarV v t -> DataType # dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (PVarV v t)) # dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (PVarV v t)) # gmapT :: (forall b. Data b => b -> b) -> PVarV v t -> PVarV v t # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PVarV v t -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PVarV v t -> r # gmapQ :: (forall d. Data d => d -> u) -> PVarV v t -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> PVarV v t -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PVarV v t -> m (PVarV v t) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PVarV v t -> m (PVarV v t) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PVarV v t -> m (PVarV v t) # | |||||
| Generic (PVarV v t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| (Show t, Show v, Fixpoint v, Ord v) => Show (PVarV v t) Source # | |||||
| Eq (PVarV v t) Source # | |||||
| Ord (PVarV v t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Hashable (PVarV v a) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep (PVarV v t) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (PVarV v t) = D1 ('MetaData "PVarV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "PV" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pname") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol) :*: S1 ('MetaSel ('Just "ptype") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 t)) :*: (S1 ('MetaSel ('Just "parg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol) :*: S1 ('MetaSel ('Just "pargs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(t, Symbol, ExprV v)])))) | |||||
type Predicate = PredicateV Symbol Source #
newtype PredicateV v Source #
Instances
| NFData Predicate Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Monoid Predicate Source # | |||||
| Semigroup Predicate Source # | |||||
| Show Predicate Source # | |||||
| PPrint Predicate Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Subable Predicate Source # | |||||
| Reftable Predicate Source # | |||||
| SubsTy tv RSort Predicate Source # | |||||
| Binary v => Binary (PredicateV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Data v => Data (PredicateV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PredicateV v -> c (PredicateV v) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (PredicateV v) # toConstr :: PredicateV v -> Constr # dataTypeOf :: PredicateV v -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (PredicateV v)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (PredicateV v)) # gmapT :: (forall b. Data b => b -> b) -> PredicateV v -> PredicateV v # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PredicateV v -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PredicateV v -> r # gmapQ :: (forall d. Data d => d -> u) -> PredicateV v -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> PredicateV v -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PredicateV v -> m (PredicateV v) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PredicateV v -> m (PredicateV v) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PredicateV v -> m (PredicateV v) # | |||||
| Generic (PredicateV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Ord v => Eq (PredicateV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Ord v => Hashable (PredicateV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep (PredicateV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (PredicateV v) = D1 ('MetaData "PredicateV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'True) (C1 ('MetaCons "Pr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UsedPVarV v]))) | |||||
Manipulating Predicates
emapExprVM :: Monad m => ([Symbol] -> v -> m v') -> ExprV v -> m (ExprV v') Source #
A map traversal that collects the local variables in scope
mapPredicateV :: (v -> v') -> PredicateV v -> PredicateV v' Source #
emapPredicateVM :: Monad m => ([Symbol] -> v -> m v') -> PredicateV v -> m (PredicateV v') Source #
A map traversal that collects the local variables in scope
emapPVarVM :: Monad m => ([Symbol] -> v -> m v') -> ([Symbol] -> t -> m t') -> PVarV v t -> m (PVarV v' t') Source #
A map traversal that collects the local variables in scope
Refinements
Constructors
| MkUReft | |
Fields
| |
Instances
| NFData REnv Source # | |||||
Defined in Language.Haskell.Liquid.Types.Types | |||||
| Monoid REnv Source # | |||||
| Semigroup REnv Source # | |||||
| Exception Error Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: Error -> SomeException # fromException :: SomeException -> Maybe Error # displayException :: Error -> String # backtraceDesired :: Error -> Bool # | |||||
| Show BareSpec Source # | |||||
| Show Error Source # | |||||
| Ord DataDecl Source # | |||||
Defined in Language.Haskell.Liquid.Types.DataDecl | |||||
| PPrint Error Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy | |||||
| Expand DataCtor Source # | |||||
| Expand DataDecl Source # | |||||
| Expand BareType Source # |
| ||||
| Expand RReft Source # | |||||
| Expand SpecType Source # |
| ||||
| Expand BareDef Source # | |||||
| Expand BareMeasure Source # | |||||
Defined in Language.Haskell.Liquid.Bare.Expand Methods expand :: BareRTEnv -> SourcePos -> BareMeasure -> BareMeasure Source # | |||||
| Expand BareSpec Source # | |||||
| Expand BareRTAlias Source # | |||||
Defined in Language.Haskell.Liquid.Bare.Expand Methods expand :: BareRTEnv -> SourcePos -> BareRTAlias -> BareRTAlias Source # | |||||
| REq SpecType Source # | |||||
| Result Error Source # | |||||
| Freshable m Integer => Freshable m RReft Source # | |||||
| SubsTy TyVar Type SpecType Source # | |||||
| SubsTy RTyVar RSort SpecType Source # | |||||
| SubsTy RTyVar RTyVar SpecType Source # | |||||
| SubsTy tv ty r => SubsTy tv ty (UReft r) Source # | |||||
| (SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv ())) => SubsTy tv ty (RTProp c tv (UReft r)) Source # | |||||
| NFData r => NFData (UReft r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Functor (UReftV v) Source # | |||||
| Monoid a => Monoid (UReft a) Source # | |||||
| Semigroup a => Semigroup (UReft a) Source # | |||||
| Foldable (UReftV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods fold :: Monoid m => UReftV v m -> m # foldMap :: Monoid m => (a -> m) -> UReftV v a -> m # foldMap' :: Monoid m => (a -> m) -> UReftV v a -> m # foldr :: (a -> b -> b) -> b -> UReftV v a -> b # foldr' :: (a -> b -> b) -> b -> UReftV v a -> b # foldl :: (b -> a -> b) -> b -> UReftV v a -> b # foldl' :: (b -> a -> b) -> b -> UReftV v a -> b # foldr1 :: (a -> a -> a) -> UReftV v a -> a # foldl1 :: (a -> a -> a) -> UReftV v a -> a # elem :: Eq a => a -> UReftV v a -> Bool # maximum :: Ord a => UReftV v a -> a # minimum :: Ord a => UReftV v a -> a # | |||||
| Traversable (UReftV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Exception [Error] Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy Methods toException :: [Error] -> SomeException # fromException :: SomeException -> Maybe [Error] # displayException :: [Error] -> String # backtraceDesired :: [Error] -> Bool # | |||||
| PPrint (UReft r) => Show (UReft r) Source # | |||||
| PPrint (CtxError SpecType) Source # | |||||
Defined in Language.Haskell.Liquid.UX.Tidy | |||||
| Expression (UReft ()) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Subable r => Subable (UReft r) Source # | |||||
| REq (UReft Reft) Source # | |||||
| (PPrint r, Reftable r) => Reftable (UReft r) Source # | |||||
| UReftable (UReft Reft) Source # | |||||
| Result [Error] Source # | |||||
| (Binary r, Binary v) => Binary (UReftV v r) Source # | |||||
| (Data v, Data r) => Data (UReftV v r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UReftV v r -> c (UReftV v r) # gunfold :: (forall b r0. Data b => c (b -> r0) -> c r0) -> (forall r1. r1 -> c r1) -> Constr -> c (UReftV v r) # toConstr :: UReftV v r -> Constr # dataTypeOf :: UReftV v r -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (UReftV v r)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UReftV v r)) # gmapT :: (forall b. Data b => b -> b) -> UReftV v r -> UReftV v r # gmapQl :: (r0 -> r' -> r0) -> r0 -> (forall d. Data d => d -> r') -> UReftV v r -> r0 # gmapQr :: forall r0 r'. (r' -> r0 -> r0) -> r0 -> (forall d. Data d => d -> r') -> UReftV v r -> r0 # gmapQ :: (forall d. Data d => d -> u) -> UReftV v r -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UReftV v r -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UReftV v r -> m (UReftV v r) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UReftV v r -> m (UReftV v r) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UReftV v r -> m (UReftV v r) # | |||||
| Generic (UReftV v r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| (Ord v, Eq r) => Eq (UReftV v r) Source # | |||||
| (Ord v, Hashable r) => Hashable (UReftV v r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| (PPrint (PredicateV v), Reftable (PredicateV v), PPrint r, Reftable r) => PPrint (UReftV v r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.PrettyPrint | |||||
| ToReftV r => ToReftV (UReftV v r) Source # | |||||
| Reftable (RTProp BTyCon BTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # meet :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # toReft :: RTProp BTyCon BTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp BTyCon BTyVar (UReft Reft) Source # | |||||
| Reftable (RTProp RTyCon RTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp RTyCon RTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # meet :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # toReft :: RTProp RTyCon RTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp RTyCon RTyVar (UReft Reft) Source # | |||||
| Reftable (RType BTyCon BTyVar (UReft Reft)) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RType BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # meet :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # | |||||
| type Rep (UReftV v r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (UReftV v r) = D1 ('MetaData "UReftV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "MkUReft" 'PrefixI 'True) (S1 ('MetaSel ('Just "ur_reft") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 r) :*: S1 ('MetaSel ('Just "ur_pred") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PredicateV v)))) | |||||
| type ReftVar (UReftV v r) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
emapUReftVM :: Monad m => ([Symbol] -> v -> m v') -> (r -> m r') -> UReftV v r -> m (UReftV v' r') Source #
Parse-time entities describing refined data types
Constructors
| IdSizeFun | x -> F.EVar x |
| SymSizeFun (Located v) | x -> f x |
Instances
| Functor SizeFunV Source # | |||||
| Foldable SizeFunV Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods fold :: Monoid m => SizeFunV m -> m # foldMap :: Monoid m => (a -> m) -> SizeFunV a -> m # foldMap' :: Monoid m => (a -> m) -> SizeFunV a -> m # foldr :: (a -> b -> b) -> b -> SizeFunV a -> b # foldr' :: (a -> b -> b) -> b -> SizeFunV a -> b # foldl :: (b -> a -> b) -> b -> SizeFunV a -> b # foldl' :: (b -> a -> b) -> b -> SizeFunV a -> b # foldr1 :: (a -> a -> a) -> SizeFunV a -> a # foldl1 :: (a -> a -> a) -> SizeFunV a -> a # elem :: Eq a => a -> SizeFunV a -> Bool # maximum :: Ord a => SizeFunV a -> a # minimum :: Ord a => SizeFunV a -> a # | |||||
| Traversable SizeFunV Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Binary v => Binary (SizeFunV v) Source # | |||||
| NFData v => NFData (SizeFunV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Data v => Data (SizeFunV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SizeFunV v -> c (SizeFunV v) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SizeFunV v) # toConstr :: SizeFunV v -> Constr # dataTypeOf :: SizeFunV v -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SizeFunV v)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SizeFunV v)) # gmapT :: (forall b. Data b => b -> b) -> SizeFunV v -> SizeFunV v # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SizeFunV v -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SizeFunV v -> r # gmapQ :: (forall d. Data d => d -> u) -> SizeFunV v -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SizeFunV v -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SizeFunV v -> m (SizeFunV v) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SizeFunV v -> m (SizeFunV v) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SizeFunV v -> m (SizeFunV v) # | |||||
| Generic (SizeFunV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show v => Show (SizeFunV v) Source # | |||||
| Eq v => Eq (SizeFunV v) Source # | |||||
| Hashable v => Hashable (SizeFunV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| PPrint v => PPrint (SizeFunV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep (SizeFunV v) Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep (SizeFunV v) = D1 ('MetaData "SizeFunV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "IdSizeFun" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SymSizeFun" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Located v)))) | |||||
Constructors
| TyConP | |
Fields
| |
Instances
| Data TyConP Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyConP -> c TyConP # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyConP # toConstr :: TyConP -> Constr # dataTypeOf :: TyConP -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyConP) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyConP) # gmapT :: (forall b. Data b => b -> b) -> TyConP -> TyConP # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyConP -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyConP -> r # gmapQ :: (forall d. Data d => d -> u) -> TyConP -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyConP -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyConP -> m TyConP # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConP -> m TyConP # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyConP -> m TyConP # | |||||
| Generic TyConP Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show TyConP Source # | |||||
| PPrint TyConP Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Loc TyConP Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep TyConP Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType type Rep TyConP = D1 ('MetaData "TyConP" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.10.1.2-inplace" 'False) (C1 ('MetaCons "TyConP" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tcpLoc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos) :*: (S1 ('MetaSel ('Just "tcpCon") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TyCon) :*: S1 ('MetaSel ('Just "tcpFreeTyVarsTy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [RTyVar]))) :*: ((S1 ('MetaSel ('Just "tcpFreePredTy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [PVar RSort]) :*: S1 ('MetaSel ('Just "tcpVarianceTs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarianceInfo)) :*: (S1 ('MetaSel ('Just "tcpVariancePs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarianceInfo) :*: S1 ('MetaSel ('Just "tcpSizeFun") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe SizeFun)))))) | |||||
Pre-instantiated RType
type RTVU c tv = RTVUV Symbol c tv Source #
Unified Representation of Refinement Types --------------------------------
Instantiated RType
type BareTypeLHName = BareTypeV LHName Source #
type BareTypeParsed = BareTypeV LocSymbol Source #
type LocBareType = Located BareType Source #
type LocSpecType = Located SpecType Source #
type UsedPVar = UsedPVarV Symbol Source #
Predicates ----------------------------------------------------------------
Printer Configuration
Printer ----------------------------------------------------------------
Constructors
| PP | |
ppEnvShort :: PPEnv -> PPEnv Source #
Refined Function Info
Instances
| Binary RFInfo Source # | |||||
| NFData RFInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| Data RFInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RFInfo -> c RFInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RFInfo # toConstr :: RFInfo -> Constr # dataTypeOf :: RFInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RFInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RFInfo) # gmapT :: (forall b. Data b => b -> b) -> RFInfo -> RFInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RFInfo -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RFInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> RFInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RFInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RFInfo -> m RFInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RFInfo -> m RFInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RFInfo -> m RFInfo # | |||||
| Generic RFInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType Associated Types
| |||||
| Show RFInfo Source # | |||||
| Eq RFInfo Source # | |||||
| Hashable RFInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
| type Rep RFInfo Source # | |||||
Defined in Language.Haskell.Liquid.Types.RType | |||||
classRFInfo :: Bool -> RFInfo Source #
Reftable/UReftable Instances
class (Monoid r, Subable r) => Reftable r where Source #
Instances
| Reftable Reft Source # | |
| Reftable Predicate Source # | |
| Reftable () Source # | |
| (PPrint r, Reftable r) => Reftable (UReft r) Source # | |
| Reftable (RTProp BTyCon BTyVar (UReft Reft)) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # meet :: RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) -> RTProp BTyCon BTyVar (UReft Reft) Source # toReft :: RTProp BTyCon BTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp BTyCon BTyVar (UReft Reft) Source # | |
| Reftable (RTProp BTyCon BTyVar ()) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp BTyCon BTyVar () -> Bool Source # ppTy :: RTProp BTyCon BTyVar () -> Doc -> Doc Source # top :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # meet :: RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () -> RTProp BTyCon BTyVar () Source # | |
| Reftable (RTProp RTyCon RTyVar Reft) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar Reft -> Bool Source # ppTy :: RTProp RTyCon RTyVar Reft -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # meet :: RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft -> RTProp RTyCon RTyVar Reft Source # | |
| Reftable (RTProp RTyCon RTyVar (UReft Reft)) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar (UReft Reft) -> Bool Source # ppTy :: RTProp RTyCon RTyVar (UReft Reft) -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # meet :: RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) -> RTProp RTyCon RTyVar (UReft Reft) Source # toReft :: RTProp RTyCon RTyVar (UReft Reft) -> Reft Source # ofReft :: Reft -> RTProp RTyCon RTyVar (UReft Reft) Source # | |
| Reftable (RTProp RTyCon RTyVar ()) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RTProp RTyCon RTyVar () -> Bool Source # ppTy :: RTProp RTyCon RTyVar () -> Doc -> Doc Source # top :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # meet :: RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () -> RTProp RTyCon RTyVar () Source # | |
| Reftable (RType BTyCon BTyVar (UReft Reft)) Source # | |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType BTyCon BTyVar (UReft Reft) -> Bool Source # ppTy :: RType BTyCon BTyVar (UReft Reft) -> Doc -> Doc Source # top :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # meet :: RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) -> RType BTyCon BTyVar (UReft Reft) Source # | |
| (PPrint r, Reftable r, SubsTy RTyVar (RType RTyCon RTyVar ()) r, Reftable (RTProp RTyCon RTyVar r)) => Reftable (RType RTyCon RTyVar r) Source # | Reftable Instances ------------------------------------------------------- |
Defined in Language.Haskell.Liquid.Types.RefType Methods isTauto :: RType RTyCon RTyVar r -> Bool Source # ppTy :: RType RTyCon RTyVar r -> Doc -> Doc Source # top :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # meet :: RType RTyCon RTyVar r -> RType RTyCon RTyVar r -> RType RTyCon RTyVar r Source # | |