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 # |