liquidhaskell-boot
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Types.RType

Description

This module contains the types to represent refinement types.

Synopsis

Bare Type Constructors and Variables

data BTyCon Source #

Constructors

BTyCon 

Fields

Instances

Instances details
Binary BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: BTyCon -> Put #

get :: Get BTyCon #

putList :: [BTyCon] -> Put #

NFData BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: BTyCon -> () #

Eq BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: BTyCon -> BTyCon -> Bool #

(/=) :: BTyCon -> BTyCon -> Bool #

Ord DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.DataDecl

Ord BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Data BTyCon Source # 
Instance details

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) -> BTyCon -> c BTyCon #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BTyCon #

toConstr :: BTyCon -> Constr #

dataTypeOf :: BTyCon -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BTyCon) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BTyCon) #

gmapT :: (forall b. Data b => b -> b) -> BTyCon -> BTyCon #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BTyCon -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BTyCon -> r #

gmapQ :: (forall d. Data d => d -> u) -> BTyCon -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> BTyCon -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BTyCon -> m BTyCon #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BTyCon -> m BTyCon #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BTyCon -> m BTyCon #

Generic BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep BTyCon 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep BTyCon = D1 ('MetaData "BTyCon" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "BTyCon" 'PrefixI 'True) (S1 ('MetaSel ('Just "btc_tc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Located LHName)) :*: (S1 ('MetaSel ('Just "btc_class") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "btc_prom") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))

Methods

from :: BTyCon -> Rep BTyCon x #

to :: Rep BTyCon x -> BTyCon #

Show BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Show BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Specs

Hashable BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> BTyCon -> Int #

hash :: BTyCon -> Int #

Fixpoint BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

toFix :: BTyCon -> Doc

simplify :: BTyCon -> BTyCon

PPrint BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> BTyCon -> Doc #

pprintPrec :: Int -> Tidy -> BTyCon -> Doc #

Loc BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

srcSpan :: BTyCon -> SrcSpan

Expand DataCtor Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareType Source #

expand on a BareType actually applies the type- and expression- aliases.

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareDef Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareMeasure Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareRTAlias Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

TyConable BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

FreeVar BTyCon BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

freeVars :: BTyCon -> [BTyVar]

SubsTy BTyVar BSort BSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BSort -> BSort Source #

SubsTy BTyVar BSort BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BTyCon -> BTyCon Source #

SubsTy Symbol Symbol (BRType r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> BRType r -> BRType r Source #

SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> RTProp BTyCon BTyVar r -> RTProp BTyCon BTyVar r Source #

SubsTy BTyVar (RType BTyCon BTyVar NoReft) Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, RType BTyCon BTyVar NoReft) -> Sort -> Sort Source #

Expand (BRType NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Meet (RTProp BTyCon BTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RType BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Rep BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep BTyCon = D1 ('MetaData "BTyCon" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "BTyCon" 'PrefixI 'True) (S1 ('MetaSel ('Just "btc_tc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Located LHName)) :*: (S1 ('MetaSel ('Just "btc_class") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "btc_prom") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))

newtype BTyVar Source #

Constructors

BTV LocSymbol 

Instances

Instances details
Binary BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: BTyVar -> Put #

get :: Get BTyVar #

putList :: [BTyVar] -> Put #

NFData BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: BTyVar -> () #

Eq BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: BTyVar -> BTyVar -> Bool #

(/=) :: BTyVar -> BTyVar -> Bool #

Ord DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.DataDecl

Ord BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Data BTyVar Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep BTyVar 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep BTyVar = D1 ('MetaData "BTyVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'True) (C1 ('MetaCons "BTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LocSymbol)))

Methods

from :: BTyVar -> Rep BTyVar x #

to :: Rep BTyVar x -> BTyVar #

Show BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Show BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Specs

Hashable BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> BTyVar -> Int #

hash :: BTyVar -> Int #

Symbolic BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

symbol :: BTyVar -> Symbol

PPrint BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> BTyVar -> Doc #

pprintPrec :: Int -> Tidy -> BTyVar -> Doc #

Expand DataCtor Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareType Source #

expand on a BareType actually applies the type- and expression- aliases.

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareDef Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareMeasure Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareRTAlias Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

CompatibleBinder Symbol BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

coerceBinder :: BTyVar -> Symbol Source #

FreeVar BTyCon BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

freeVars :: BTyCon -> [BTyVar]

SubsTy BTyVar BSort BSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BSort -> BSort Source #

SubsTy BTyVar BSort BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BTyCon -> BTyCon Source #

SubsTy Symbol Symbol (BRType r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> BRType r -> BRType r Source #

SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> RTProp BTyCon BTyVar r -> RTProp BTyCon BTyVar r Source #

SubsTy BTyVar (RType BTyCon BTyVar NoReft) Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, RType BTyCon BTyVar NoReft) -> Sort -> Sort Source #

SubsTy BTyVar (RType c BTyVar NoReft) BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy BTyVar (RType c BTyVar NoReft) (RTVar BTyVar (RType c BTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Expand (BRType NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

CompatibleBinder (Located Symbol) BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

coerceBinder :: BTyVar -> Located Symbol Source #

Meet (RTProp BTyCon BTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RType BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Rep BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep BTyVar = D1 ('MetaData "BTyVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'True) (C1 ('MetaCons "BTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LocSymbol)))

Refined Type Constructors

data RTyCon Source #

Constructors

RTyCon TyCon ![RPVar] !TyConInfo 

Instances

Instances details
NFData RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: RTyCon -> () #

NFData REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

rnf :: REnv -> () #

Monoid REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

mempty :: REnv #

mappend :: REnv -> REnv -> REnv #

mconcat :: [REnv] -> REnv #

Semigroup REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

(<>) :: REnv -> REnv -> REnv #

sconcat :: NonEmpty REnv -> REnv #

stimes :: Integral b => b -> REnv -> REnv #

Eq RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: RTyCon -> RTyCon -> Bool #

(/=) :: RTyCon -> RTyCon -> Bool #

Data RTyCon Source # 
Instance details

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

Defined in Language.Haskell.Liquid.UX.Tidy

Generic RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep RTyCon 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep RTyCon = D1 ('MetaData "RTyCon" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

Methods

from :: RTyCon -> Rep RTyCon x #

to :: Rep RTyCon x -> RTyCon #

Show RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Show Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

Hashable RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

hashWithSalt :: Int -> RTyCon -> Int #

hash :: RTyCon -> Int #

Symbolic RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

symbol :: RTyCon -> Symbol

Fixpoint RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

toFix :: RTyCon -> Doc

simplify :: RTyCon -> RTyCon

PPrint RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> RTyCon -> Doc #

pprintPrec :: Int -> Tidy -> RTyCon -> Doc #

PPrint Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> Error -> Doc #

pprintPrec :: Int -> Tidy -> Error -> Doc #

Expand SpecType Source #

expand on a SpecType simply expands the refinements, i.e. *does not* apply the type aliases, but just the 1. predicate aliases, 2. inlines, 3. stuff from LogicMap

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

REq SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Equality

TyConable RTyCon Source #

TyConable Instances -------------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RType

Result Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: Error -> FixResult UserError Source #

FreeVar RTyCon RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

freeVars :: RTyCon -> [RTyVar]

SubsTy TyVar Type SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (TyVar, Type) -> SpecType -> SpecType Source #

SubsTy Symbol RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, RSort) -> Sort -> Sort Source #

SubsTy RTyVar RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> Sort -> Sort Source #

SubsTy RTyVar RSort RSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RSort -> RSort Source #

SubsTy RTyVar RSort RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RTyCon -> RTyCon Source #

SubsTy RTyVar RSort SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar RTyVar SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy tv RSort Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, RSort) -> Predicate -> Predicate Source #

(Freshable m Integer, Freshable m r, IsReft r, Subable r, Variable r ~ Symbol, ReftBind r ~ Symbol, ReftVar r ~ Symbol) => Freshable m (RRType r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Fresh

Methods

fresh :: m (RRType r) Source #

true :: Bool -> RRType r -> m (RRType r) Source #

refresh :: Bool -> RRType r -> m (RRType r) Source #

SubsTy RTyVar (RType RTyCon RTyVar NoReft) RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) (RTVar RTyVar (RType RTyCon RTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Exception [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

PPrint (CtxError SpecType) Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> CtxError SpecType -> Doc #

pprintPrec :: Int -> Tidy -> CtxError SpecType -> Doc #

Subable (RRProp Reft)

Subable Instances -----------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Associated Types

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RRProp Reft -> [Variable (RRProp Reft)]

substa :: (Variable (RRProp Reft) -> Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

substf :: (Variable (RRProp Reft) -> ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft -> RRProp Reft

subst :: SubstV (Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

subst1 :: RRProp Reft -> (Variable (RRProp Reft), ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft

Result [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: [Error] -> FixResult UserError Source #

Meet (RTProp RTyCon RTyVar Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Semigroup (RType RTyCon RTyVar r) => Meet (RType RTyCon RTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Rep RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep RTyCon = D1 ('MetaData "RTyCon" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))
type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol

data TyConInfo Source #

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

Instances details
NFData TyConInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: TyConInfo -> () #

Data TyConInfo Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep TyConInfo 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep TyConInfo = D1 ('MetaData "TyConInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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)))))
Show TyConInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep TyConInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep TyConInfo = D1 ('MetaData "TyConInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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)))))

isClassType :: TyConable c => RTypeV v c t t1 -> Bool Source #

isEqType :: TyConable c => RTypeV v c t t1 -> Bool Source #

isRVar :: RType c tv r -> Bool Source #

isBool :: RType RTyCon t t1 -> Bool Source #

Accessors for RTyCon

Refinement Types

type RType c tv r = RTypeV Symbol c tv r Source #

type RTypeV v c tv = RTypeBV Symbol v c tv Source #

data RTypeBV b v c tv r Source #

Constructors

RVar 

Fields

RFun 

Fields

RAllT 

Fields

RAllP

"forall x y :: Nat, w :: Int . TYPE" ^^^^^^^^^^^^^^^^^^^ (rt_pvbind)

Fields

RApp

For example, in [a]- v > h}>, we apply (via RApp) * the RProp denoted by `{h -> v > h}` to * the RTyCon denoted by `[]`.

Fields

RAllE 

Fields

REx 

Fields

RExprArg (Located (ExprBV b v))

For expression arguments to type aliases see testsposvector2.hs

RAppTy 

Fields

RRTy 

Fields

RHole r

let LH match against the Haskell type and add k-vars, e.g. `x:_` see testsposHoles.hs

Instances

Instances details
NFData REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

rnf :: REnv -> () #

Monoid REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

mempty :: REnv #

mappend :: REnv -> REnv -> REnv #

mconcat :: [REnv] -> REnv #

Semigroup REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

(<>) :: REnv -> REnv -> REnv #

sconcat :: NonEmpty REnv -> REnv #

stimes :: Integral b => b -> REnv -> REnv #

Ord DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.DataDecl

Exception Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Show BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Specs

Show Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

PPrint Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> Error -> Doc #

pprintPrec :: Int -> Tidy -> Error -> Doc #

Expand DataCtor Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareType Source #

expand on a BareType actually applies the type- and expression- aliases.

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand SpecType Source #

expand on a SpecType simply expands the refinements, i.e. *does not* apply the type aliases, but just the 1. predicate aliases, 2. inlines, 3. stuff from LogicMap

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareDef Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareMeasure Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareRTAlias Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

REq SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Equality

Result Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: Error -> FixResult UserError Source #

SubsTy TyVar Type SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (TyVar, Type) -> SpecType -> SpecType Source #

SubsTy Symbol RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, RSort) -> Sort -> Sort Source #

SubsTy BTyVar BSort BSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BSort -> BSort Source #

SubsTy BTyVar BSort BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BTyCon -> BTyCon Source #

SubsTy RTyVar RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> Sort -> Sort Source #

SubsTy RTyVar RSort RSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RSort -> RSort Source #

SubsTy RTyVar RSort RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RTyCon -> RTyCon Source #

SubsTy RTyVar RSort SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar RTyVar SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy tv RSort Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, RSort) -> Predicate -> Predicate Source #

SubsTy Symbol Symbol (BRType r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> BRType r -> BRType r Source #

SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> RTProp BTyCon BTyVar r -> RTProp BTyCon BTyVar r Source #

(SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv NoReft)) => SubsTy tv ty (RTProp c tv (UReft r)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> RTProp c tv (UReft r) -> RTProp c tv (UReft r) Source #

(Freshable m Integer, Freshable m r, IsReft r, Subable r, Variable r ~ Symbol, ReftBind r ~ Symbol, ReftVar r ~ Symbol) => Freshable m (RRType r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Fresh

Methods

fresh :: m (RRType r) Source #

true :: Bool -> RRType r -> m (RRType r) Source #

refresh :: Bool -> RRType r -> m (RRType r) Source #

SubsTy BTyVar (RType BTyCon BTyVar NoReft) Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, RType BTyCon BTyVar NoReft) -> Sort -> Sort Source #

SubsTy BTyVar (RType c BTyVar NoReft) BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy BTyVar (RType c BTyVar NoReft) (RTVar BTyVar (RType c BTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) (RTVar RTyVar (RType RTyCon RTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Exception [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

PPrint (CtxError SpecType) Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> CtxError SpecType -> Doc #

pprintPrec :: Int -> Tidy -> CtxError SpecType -> Doc #

Subable (RRProp Reft)

Subable Instances -----------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Associated Types

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RRProp Reft -> [Variable (RRProp Reft)]

substa :: (Variable (RRProp Reft) -> Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

substf :: (Variable (RRProp Reft) -> ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft -> RRProp Reft

subst :: SubstV (Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

subst1 :: RRProp Reft -> (Variable (RRProp Reft), ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft

Expand (BRType NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Result [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: [Error] -> FixResult UserError Source #

Show tv => Show (RTVU c tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RTVU c tv -> ShowS #

show :: RTVU c tv -> String #

showList :: [RTVU c tv] -> ShowS #

(PPrint r, PPrint t, PPrint (RType c tv r)) => PPrint (Ref t (RType c tv r)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> Ref t (RType c tv r) -> Doc #

pprintPrec :: Int -> Tidy -> Ref t (RType c tv r) -> Doc #

(NFData c, NFData tv, NFData r) => NFData (RType c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: RType c tv r -> () #

(Eq c, Eq tv, Hashable tv, PPrint tv, TyConable c, PPrint c) => Eq (RType c tv NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(==) :: RType c tv NoReft -> RType c tv NoReft -> Bool #

(/=) :: RType c tv NoReft -> RType c tv NoReft -> Bool #

PPrint (RTProp c tv r) => Show (RTProp c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RTProp c tv r -> ShowS #

show :: RTProp c tv r -> String #

showList :: [RTProp c tv r] -> ShowS #

PPrint (RType c tv r) => Show (RType c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RType c tv r -> ShowS #

show :: RType c tv r -> String #

showList :: [RType c tv r] -> ShowS #

Meet (RTProp BTyCon BTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RType BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Semigroup (RType RTyCon RTyVar r) => Meet (RType RTyCon RTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Functor (RTypeBV b v c tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b0) -> RTypeBV b v c tv a -> RTypeBV b v c tv b0 #

(<$) :: a -> RTypeBV b v c tv b0 -> RTypeBV b v c tv a #

Foldable (RTypeBV b v c tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fold :: Monoid m => RTypeBV b v c tv m -> m #

foldMap :: Monoid m => (a -> m) -> RTypeBV b v c tv a -> m #

foldMap' :: Monoid m => (a -> m) -> RTypeBV b v c tv a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> RTypeBV b v c tv a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> RTypeBV b v c tv a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> RTypeBV b v c tv a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> RTypeBV b v c tv a -> b0 #

foldr1 :: (a -> a -> a) -> RTypeBV b v c tv a -> a #

foldl1 :: (a -> a -> a) -> RTypeBV b v c tv a -> a #

toList :: RTypeBV b v c tv a -> [a] #

null :: RTypeBV b v c tv a -> Bool #

length :: RTypeBV b v c tv a -> Int #

elem :: Eq a => a -> RTypeBV b v c tv a -> Bool #

maximum :: Ord a => RTypeBV b v c tv a -> a #

minimum :: Ord a => RTypeBV b v c tv a -> a #

sum :: Num a => RTypeBV b v c tv a -> a #

product :: Num a => RTypeBV b v c tv a -> a #

Traversable (RTypeBV b v c tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b0) -> RTypeBV b v c tv a -> f (RTypeBV b v c tv b0) #

sequenceA :: Applicative f => RTypeBV b v c tv (f a) -> f (RTypeBV b v c tv a) #

mapM :: Monad m => (a -> m b0) -> RTypeBV b v c tv a -> m (RTypeBV b v c tv b0) #

sequence :: Monad m => RTypeBV b v c tv (m a) -> m (RTypeBV b v c tv a) #

(Binary v, Binary tv, Binary r, Binary b, Binary c) => Binary (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: RTypeBV b v c tv r -> Put #

get :: Get (RTypeBV b v c tv r) #

putList :: [RTypeBV b v c tv r] -> Put #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Monoid (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

mempty :: RTPropBV v v c tv r #

mappend :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

mconcat :: [RTPropBV v v c tv r] -> RTPropBV v v c tv r #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, FreeVar c tv, Subable r, Variable r ~ v, ReftBind r ~ v, IsReft r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Monoid (RTypeBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

mempty :: RTypeBV v v c tv r #

mappend :: RTypeBV v v c tv r -> RTypeBV v v c tv r -> RTypeBV v v c tv r #

mconcat :: [RTypeBV v v c tv r] -> RTypeBV v v c tv r #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Semigroup (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(<>) :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

sconcat :: NonEmpty (RTPropBV v v c tv r) -> RTPropBV v v c tv r #

stimes :: Integral b => b -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, FreeVar c tv, Subable r, Variable r ~ v, ReftBind r ~ v, IsReft r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Semigroup (RTypeBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(<>) :: RTypeBV v v c tv r -> RTypeBV v v c tv r -> RTypeBV v v c tv r #

sconcat :: NonEmpty (RTypeBV v v c tv r) -> RTypeBV v v c tv r #

stimes :: Integral b => b -> RTypeBV v v c tv r -> RTypeBV v v c tv r #

(Eq tv, Eq c, Eq v, Eq b, Eq r) => Eq (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: RTypeBV b v c tv r -> RTypeBV b v c tv r -> Bool #

(/=) :: RTypeBV b v c tv r -> RTypeBV b v c tv r -> Bool #

(Data tv, Data c, Data v, Data b, Data r) => Data (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

gfoldl :: (forall d b0. Data d => c0 (d -> b0) -> d -> c0 b0) -> (forall g. g -> c0 g) -> RTypeBV b v c tv r -> c0 (RTypeBV b v c tv r) #

gunfold :: (forall b0 r0. Data b0 => c0 (b0 -> r0) -> c0 r0) -> (forall r1. r1 -> c0 r1) -> Constr -> c0 (RTypeBV b v c tv r) #

toConstr :: RTypeBV b v c tv r -> Constr #

dataTypeOf :: RTypeBV b v c tv r -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (RTypeBV b v c tv r)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (RTypeBV b v c tv r)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> RTypeBV b v c tv r -> RTypeBV b v c tv r #

gmapQl :: (r0 -> r' -> r0) -> r0 -> (forall d. Data d => d -> r') -> RTypeBV b v c tv r -> r0 #

gmapQr :: forall r0 r'. (r' -> r0 -> r0) -> r0 -> (forall d. Data d => d -> r') -> RTypeBV b v c tv r -> r0 #

gmapQ :: (forall d. Data d => d -> u) -> RTypeBV b v c tv r -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RTypeBV b v c tv r -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RTypeBV b v c tv r -> m (RTypeBV b v c tv r) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RTypeBV b v c tv r -> m (RTypeBV b v c tv r) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RTypeBV b v c tv r -> m (RTypeBV b v c tv r) #

Generic (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (RTypeBV b v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RTypeBV b v c tv r)

Methods

from :: RTypeBV b v c tv r -> Rep (RTypeBV b v c tv r) x #

to :: Rep (RTypeBV b v c tv r) x -> RTypeBV b v c tv r #

(Hashable r, Hashable tv, Hashable c, Hashable v, Hashable b) => Hashable (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> RTypeBV b v c tv r -> Int #

hash :: RTypeBV b v c tv r -> Int #

OkRTBV b v c tv r => PPrint (RTypeBV b v c tv r) Source #

Pretty Printing RefType ---------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.PrettyPrint

Methods

pprintTidy :: Tidy -> RTypeBV b v c tv r -> Doc #

pprintPrec :: Int -> Tidy -> RTypeBV b v c tv r -> Doc #

(IsReft r, Subable r, TyConable c, Binder v, Variable r ~ v, ReftBind r ~ v) => Subable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

Associated Types

type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RTPropBV v v c tv r -> [Variable (RTPropBV v v c tv r)]

substa :: (Variable (RTPropBV v v c tv r) -> Variable (RTPropBV v v c tv r)) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

substf :: (Variable (RTPropBV v v c tv r) -> ExprBV (Variable (RTPropBV v v c tv r)) (Variable (RTPropBV v v c tv r))) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

subst :: SubstV (Variable (RTPropBV v v c tv r)) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

subst1 :: RTPropBV v v c tv r -> (Variable (RTPropBV v v c tv r), ExprBV (Variable (RTPropBV v v c tv r)) (Variable (RTPropBV v v c tv r))) -> RTPropBV v v c tv r

(Subable r, IsReft r, TyConable c, Binder v, Variable r ~ v, ReftBind r ~ v) => Subable (RTypeBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

Associated Types

type Variable (RTypeBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTypeBV v v c tv r) = v

Methods

syms :: RTypeBV v v c tv r -> [Variable (RTypeBV v v c tv r)]

substa :: (Variable (RTypeBV v v c tv r) -> Variable (RTypeBV v v c tv r)) -> RTypeBV v v c tv r -> RTypeBV v v c tv r

substf :: (Variable (RTypeBV v v c tv r) -> ExprBV (Variable (RTypeBV v v c tv r)) (Variable (RTypeBV v v c tv r))) -> RTypeBV v v c tv r -> RTypeBV v v c tv r

subst :: SubstV (Variable (RTypeBV v v c tv r)) -> RTypeBV v v c tv r -> RTypeBV v v c tv r

subst1 :: RTypeBV v v c tv r -> (Variable (RTypeBV v v c tv r), ExprBV (Variable (RTypeBV v v c tv r)) (Variable (RTypeBV v v c tv r))) -> RTypeBV v v c tv r

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Meet (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

meet :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r Source #

Top r => Top (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

Methods

top :: RTypeBV b v c tv r -> RTypeBV b v c tv r Source #

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Rep (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RTypeBV b v c tv r)
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v
type Variable (RTypeBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTypeBV v v c tv r) = v

type Ref τ t = RefB Symbol τ t Source #

data RefB b τ t Source #

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 

Fields

  • rf_args :: [(b, τ)]

    arguments. e.g. h in the above example

  • rf_body :: t

    Abstract refinement associated with RTyCon. e.g. v > h in the above example

Instances

Instances details
SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> RTProp BTyCon BTyVar r -> RTProp BTyCon BTyVar r Source #

(SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv NoReft)) => SubsTy tv ty (RTProp c tv (UReft r)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> RTProp c tv (UReft r) -> RTProp c tv (UReft r) Source #

Subable (RRProp Reft)

Subable Instances -----------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Associated Types

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RRProp Reft -> [Variable (RRProp Reft)]

substa :: (Variable (RRProp Reft) -> Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

substf :: (Variable (RRProp Reft) -> ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft -> RRProp Reft

subst :: SubstV (Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

subst1 :: RRProp Reft -> (Variable (RRProp Reft), ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft

(NFData τ, NFData t) => NFData (Ref τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: Ref τ t -> () #

Functor (RefB b τ) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b0) -> RefB b τ a -> RefB b τ b0 #

(<$) :: a -> RefB b τ b0 -> RefB b τ a #

Foldable (RefB b τ) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fold :: Monoid m => RefB b τ m -> m #

foldMap :: Monoid m => (a -> m) -> RefB b τ a -> m #

foldMap' :: Monoid m => (a -> m) -> RefB b τ a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> RefB b τ a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> RefB b τ a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> RefB b τ a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> RefB b τ a -> b0 #

foldr1 :: (a -> a -> a) -> RefB b τ a -> a #

foldl1 :: (a -> a -> a) -> RefB b τ a -> a #

toList :: RefB b τ a -> [a] #

null :: RefB b τ a -> Bool #

length :: RefB b τ a -> Int #

elem :: Eq a => a -> RefB b τ a -> Bool #

maximum :: Ord a => RefB b τ a -> a #

minimum :: Ord a => RefB b τ a -> a #

sum :: Num a => RefB b τ a -> a #

product :: Num a => RefB b τ a -> a #

Traversable (RefB b τ) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b0) -> RefB b τ a -> f (RefB b τ b0) #

sequenceA :: Applicative f => RefB b τ (f a) -> f (RefB b τ a) #

mapM :: Monad m => (a -> m b0) -> RefB b τ a -> m (RefB b τ b0) #

sequence :: Monad m => RefB b τ (m a) -> m (RefB b τ a) #

(PPrint r, PPrint t, PPrint (RType c tv r)) => PPrint (Ref t (RType c tv r)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> Ref t (RType c tv r) -> Doc #

pprintPrec :: Int -> Tidy -> Ref t (RType c tv r) -> Doc #

REq t2 => REq (Ref t1 t2) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Equality

Methods

(=*=) :: Ref t1 t2 -> Ref t1 t2 -> Bool Source #

(Binary b, Binary τ, Binary t) => Binary (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: RefB b τ t -> Put #

get :: Get (RefB b τ t) #

putList :: [RefB b τ t] -> Put #

(Eq b, Eq τ, Eq t) => Eq (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: RefB b τ t -> RefB b τ t -> Bool #

(/=) :: RefB b τ t -> RefB b τ t -> Bool #

(Data b, Data τ, Data t) => Data (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> RefB b τ t -> c (RefB b τ t) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (RefB b τ t) #

toConstr :: RefB b τ t -> Constr #

dataTypeOf :: RefB b τ t -> DataType #

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (RefB b τ t)) #

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (RefB b τ t)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> RefB b τ t -> RefB b τ t #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RefB b τ t -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RefB b τ t -> r #

gmapQ :: (forall d. Data d => d -> u) -> RefB b τ t -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RefB b τ t -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RefB b τ t -> m (RefB b τ t) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RefB b τ t -> m (RefB b τ t) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RefB b τ t -> m (RefB b τ t) #

Generic (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (RefB b τ t) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RefB b τ t) = D1 ('MetaData "RefB" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "RProp" 'PrefixI 'True) (S1 ('MetaSel ('Just "rf_args") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(b, τ)]) :*: S1 ('MetaSel ('Just "rf_body") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 t)))

Methods

from :: RefB b τ t -> Rep (RefB b τ t) x #

to :: Rep (RefB b τ t) x -> RefB b τ t #

PPrint (RTProp c tv r) => Show (RTProp c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RTProp c tv r -> ShowS #

show :: RTProp c tv r -> String #

showList :: [RTProp c tv r] -> ShowS #

(Hashable b, Hashable τ, Hashable t) => Hashable (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> RefB b τ t -> Int #

hash :: RefB b τ t -> Int #

Meet (RTProp BTyCon BTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

ToReft t => ToReft (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (RefB b τ t) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (RefB b τ t) = ReftVar t
type ReftBind (RefB b τ t) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (RefB b τ t) = ReftBind t

Methods

toReft :: RefB b τ t -> ReftBV (ReftBind (RefB b τ t)) (ReftVar (RefB b τ t)) Source #

toUReft :: RefB b τ t -> UReftBV (ReftBind (RefB b τ t)) (ReftVar (RefB b τ t)) (ReftBV (ReftBind (RefB b τ t)) (ReftVar (RefB b τ t))) Source #

Top t => Top (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: RefB b τ t -> RefB b τ t Source #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Monoid (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

mempty :: RTPropBV v v c tv r #

mappend :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

mconcat :: [RTPropBV v v c tv r] -> RTPropBV v v c tv r #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Semigroup (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(<>) :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

sconcat :: NonEmpty (RTPropBV v v c tv r) -> RTPropBV v v c tv r #

stimes :: Integral b => b -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

(IsReft r, Subable r, TyConable c, Binder v, Variable r ~ v, ReftBind r ~ v) => Subable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

Associated Types

type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RTPropBV v v c tv r -> [Variable (RTPropBV v v c tv r)]

substa :: (Variable (RTPropBV v v c tv r) -> Variable (RTPropBV v v c tv r)) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

substf :: (Variable (RTPropBV v v c tv r) -> ExprBV (Variable (RTPropBV v v c tv r)) (Variable (RTPropBV v v c tv r))) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

subst :: SubstV (Variable (RTPropBV v v c tv r)) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

subst1 :: RTPropBV v v c tv r -> (Variable (RTPropBV v v c tv r), ExprBV (Variable (RTPropBV v v c tv r)) (Variable (RTPropBV v v c tv r))) -> RTPropBV v v c tv r

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Meet (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

meet :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r Source #

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Rep (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RefB b τ t) = D1 ('MetaData "RefB" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "RProp" 'PrefixI 'True) (S1 ('MetaSel ('Just "rf_args") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(b, τ)]) :*: S1 ('MetaSel ('Just "rf_body") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 t)))
type ReftBind (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (RefB b τ t) = ReftBind t
type ReftVar (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (RefB b τ t) = ReftVar t
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

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.

type RTPropV v c tv r = RTPropBV Symbol v c tv r Source #

type RTPropBV b v c tv r = RefB b (RTypeBV b v c tv (NoReftB b)) (RTypeBV b v c tv r) Source #

rPropP :: [(b, τ)] -> r -> RefB b τ (RTypeV v c tv r) Source #

newtype RTyVar Source #

Constructors

RTV TyVar 

Instances

Instances details
NFData RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: RTyVar -> () #

NFData REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

rnf :: REnv -> () #

Monoid REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

mempty :: REnv #

mappend :: REnv -> REnv -> REnv #

mconcat :: [REnv] -> REnv #

Semigroup REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

(<>) :: REnv -> REnv -> REnv #

sconcat :: NonEmpty REnv -> REnv #

stimes :: Integral b => b -> REnv -> REnv #

Eq RTyVar Source #

Wrappers for GHC Type Elements --------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(==) :: RTyVar -> RTyVar -> Bool #

(/=) :: RTyVar -> RTyVar -> Bool #

Ord RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Data RTyVar Source # 
Instance details

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

Defined in Language.Haskell.Liquid.UX.Tidy

Generic RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep RTyVar 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep RTyVar = D1 ('MetaData "RTyVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'True) (C1 ('MetaCons "RTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyVar)))

Methods

from :: RTyVar -> Rep RTyVar x #

to :: Rep RTyVar x -> RTyVar #

Show RTyVar Source #

Printing Refinement Types -------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RType

Show Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

Hashable RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

hashWithSalt :: Int -> RTyVar -> Int #

hash :: RTyVar -> Int #

Symbolic RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

symbol :: RTyVar -> Symbol

PPrint RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> RTyVar -> Doc #

pprintPrec :: Int -> Tidy -> RTyVar -> Doc #

PPrint Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> Error -> Doc #

pprintPrec :: Int -> Tidy -> Error -> Doc #

Expand SpecType Source #

expand on a SpecType simply expands the refinements, i.e. *does not* apply the type aliases, but just the 1. predicate aliases, 2. inlines, 3. stuff from LogicMap

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

REq SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Equality

Result Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: Error -> FixResult UserError Source #

FreeVar RTyCon RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

freeVars :: RTyCon -> [RTyVar]

SubsTy TyVar Type SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (TyVar, Type) -> SpecType -> SpecType Source #

SubsTy Symbol RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, RSort) -> Sort -> Sort Source #

SubsTy RTyVar RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> Sort -> Sort Source #

SubsTy RTyVar RSort RSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RSort -> RSort Source #

SubsTy RTyVar RSort RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RTyCon -> RTyCon Source #

SubsTy RTyVar RSort SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar RTyVar SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy tv RSort Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, RSort) -> Predicate -> Predicate Source #

(Freshable m Integer, Freshable m r, IsReft r, Subable r, Variable r ~ Symbol, ReftBind r ~ Symbol, ReftVar r ~ Symbol) => Freshable m (RRType r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Fresh

Methods

fresh :: m (RRType r) Source #

true :: Bool -> RRType r -> m (RRType r) Source #

refresh :: Bool -> RRType r -> m (RRType r) Source #

SubsTy RTyVar (RType RTyCon RTyVar NoReft) RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) (RTVar RTyVar (RType RTyCon RTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Exception [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

PPrint (CtxError SpecType) Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> CtxError SpecType -> Doc #

pprintPrec :: Int -> Tidy -> CtxError SpecType -> Doc #

Subable (RRProp Reft)

Subable Instances -----------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Associated Types

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RRProp Reft -> [Variable (RRProp Reft)]

substa :: (Variable (RRProp Reft) -> Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

substf :: (Variable (RRProp Reft) -> ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft -> RRProp Reft

subst :: SubstV (Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

subst1 :: RRProp Reft -> (Variable (RRProp Reft), ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft

Result [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: [Error] -> FixResult UserError Source #

Meet (RTProp RTyCon RTyVar Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Semigroup (RType RTyCon RTyVar r) => Meet (RType RTyCon RTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Rep RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep RTyVar = D1 ('MetaData "RTyVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'True) (C1 ('MetaCons "RTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyVar)))
type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol

type OkRT c tv r = (TyConable c, PPrint tv, PPrint c, PPrint r, PPrint (ReftVar r), Fixpoint (ReftVar r), ToReft r, ReftBind r ~ Symbol, Eq c, Eq tv, Ord (ReftVar r), Hashable tv) Source #

type OkRTBV b v c tv r = (TyConable c, PPrint b, PPrint v, PPrint tv, PPrint c, PPrint r, PPrint (ReftVar r), Fixpoint b, Fixpoint v, Fixpoint (ReftVar r), Binder b, ToReft r, ReftBind r ~ b, Eq c, Eq tv, Ord b, Ord v, Ord (ReftVar r), Hashable tv) Source #

Classes describing operations on RTypes

class Eq c => TyConable c where Source #

Minimal complete definition

isFun, isList, isTuple, ppTycon

Instances

Instances details
TyConable TyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

TyConable LocSymbol Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

TyConable Symbol Source # 
Instance details

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 #

isNumCls :: Symbol -> Bool Source #

isFracCls :: Symbol -> Bool Source #

TyConable BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

TyConable RTyCon Source #

TyConable Instances -------------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RType

Type Variables

data RTVar tv s Source #

Constructors

RTVar 

Fields

Instances

Instances details
SubsTy BTyVar (RType c BTyVar NoReft) (RTVar BTyVar (RType c BTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) (RTVar RTyVar (RType RTyCon RTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Functor (RTVar tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b) -> RTVar tv a -> RTVar tv b #

(<$) :: a -> RTVar tv b -> RTVar tv a #

Foldable (RTVar tv) Source # 
Instance details

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 #

toList :: RTVar tv a -> [a] #

null :: RTVar tv a -> Bool #

length :: RTVar tv a -> Int #

elem :: Eq a => a -> RTVar tv a -> Bool #

maximum :: Ord a => RTVar tv a -> a #

minimum :: Ord a => RTVar tv a -> a #

sum :: Num a => RTVar tv a -> a #

product :: Num a => RTVar tv a -> a #

Traversable (RTVar tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b) -> RTVar tv a -> f (RTVar tv b) #

sequenceA :: Applicative f => RTVar tv (f a) -> f (RTVar tv a) #

mapM :: Monad m => (a -> m b) -> RTVar tv a -> m (RTVar tv b) #

sequence :: Monad m => RTVar tv (m a) -> m (RTVar tv a) #

(Binary s, Binary tv) => Binary (RTVar tv s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: RTVar tv s -> Put #

get :: Get (RTVar tv s) #

putList :: [RTVar tv s] -> Put #

(NFData tv, NFData s) => NFData (RTVar tv s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: RTVar tv s -> () #

Eq tv => Eq (RTVar tv s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: RTVar tv s -> RTVar tv s -> Bool #

(/=) :: RTVar tv s -> RTVar tv s -> Bool #

(Data tv, Data s) => Data (RTVar tv s) Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (RTVar tv s) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RTVar tv s) = D1 ('MetaData "RTVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

Methods

from :: RTVar tv s -> Rep (RTVar tv s) x #

to :: Rep (RTVar tv s) x -> RTVar tv s #

Show tv => Show (RTVU c tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RTVU c tv -> ShowS #

show :: RTVU c tv -> String #

showList :: [RTVU c tv] -> ShowS #

(Hashable tv, Hashable s) => Hashable (RTVar tv s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> RTVar tv s -> Int #

hash :: RTVar tv s -> Int #

PPrint v => PPrint (RTVar v s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> RTVar v s -> Doc #

pprintPrec :: Int -> Tidy -> RTVar v s -> Doc #

type Rep (RTVar tv s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RTVar tv s) = D1 ('MetaData "RTVar" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

data RTVInfo s Source #

Constructors

RTVNoInfo 

Fields

RTVInfo 

Fields

Instances

Instances details
Functor RTVInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b) -> RTVInfo a -> RTVInfo b #

(<$) :: a -> RTVInfo b -> RTVInfo a #

Foldable RTVInfo Source # 
Instance details

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 #

toList :: RTVInfo a -> [a] #

null :: RTVInfo a -> Bool #

length :: RTVInfo a -> Int #

elem :: Eq a => a -> RTVInfo a -> Bool #

maximum :: Ord a => RTVInfo a -> a #

minimum :: Ord a => RTVInfo a -> a #

sum :: Num a => RTVInfo a -> a #

product :: Num a => RTVInfo a -> a #

Traversable RTVInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b) -> RTVInfo a -> f (RTVInfo b) #

sequenceA :: Applicative f => RTVInfo (f a) -> f (RTVInfo a) #

mapM :: Monad m => (a -> m b) -> RTVInfo a -> m (RTVInfo b) #

sequence :: Monad m => RTVInfo (m a) -> m (RTVInfo a) #

Binary s => Binary (RTVInfo s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: RTVInfo s -> Put #

get :: Get (RTVInfo s) #

putList :: [RTVInfo s] -> Put #

NFData s => NFData (RTVInfo s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: RTVInfo s -> () #

Eq s => Eq (RTVInfo s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: RTVInfo s -> RTVInfo s -> Bool #

(/=) :: RTVInfo s -> RTVInfo s -> Bool #

Data s => Data (RTVInfo s) Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (RTVInfo s) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RTVInfo s) = D1 ('MetaData "RTVInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

Methods

from :: RTVInfo s -> Rep (RTVInfo s) x #

to :: Rep (RTVInfo s) x -> RTVInfo s #

Hashable s => Hashable (RTVInfo s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> RTVInfo s -> Int #

hash :: RTVInfo s -> Int #

type Rep (RTVInfo s) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (RTVInfo s) = D1 ('MetaData "RTVInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

makeRTVar :: tv -> RTVar tv s Source #

mapTyVarValue :: (tv1 -> tv2) -> RTVar tv1 s -> RTVar tv2 s Source #

dropTyVarInfo :: RTVar tv s1 -> RTVar tv s2 Source #

rTVarToBind :: RTVar RTyVar s -> Maybe (Symbol, s) Source #

setRtvPol :: RTVar tv a -> Bool -> RTVar tv a Source #

Predicate Variables

type PVar t = PVarV Symbol t Source #

Abstract Predicate Variables ----------------------------------

type PVarV v t = PVarBV Symbol v t Source #

data PVarBV b v t Source #

Constructors

PV 

Fields

Instances

Instances details
SubsTy tv ty ty => SubsTy tv ty (PVarBV b v ty) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> PVarBV b v ty -> PVarBV b v ty Source #

Functor (PVarBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b0) -> PVarBV b v a -> PVarBV b v b0 #

(<$) :: a -> PVarBV b v b0 -> PVarBV b v a #

(Binary v, Binary b, Binary t) => Binary (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: PVarBV b v t -> Put #

get :: Get (PVarBV b v t) #

putList :: [PVarBV b v t] -> Put #

(NFData b, NFData v, NFData t) => NFData (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: PVarBV b v t -> () #

Eq b => Eq (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: PVarBV b v t -> PVarBV b v t -> Bool #

(/=) :: PVarBV b v t -> PVarBV b v t -> Bool #

Ord b => Ord (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

compare :: PVarBV b v t -> PVarBV b v t -> Ordering #

(<) :: PVarBV b v t -> PVarBV b v t -> Bool #

(<=) :: PVarBV b v t -> PVarBV b v t -> Bool #

(>) :: PVarBV b v t -> PVarBV b v t -> Bool #

(>=) :: PVarBV b v t -> PVarBV b v t -> Bool #

max :: PVarBV b v t -> PVarBV b v t -> PVarBV b v t #

min :: PVarBV b v t -> PVarBV b v t -> PVarBV b v t #

(Data t, Data v, Data b) => Data (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> PVarBV b v t -> c (PVarBV b v t) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (PVarBV b v t) #

toConstr :: PVarBV b v t -> Constr #

dataTypeOf :: PVarBV b v t -> DataType #

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (PVarBV b v t)) #

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (PVarBV b v t)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> PVarBV b v t -> PVarBV b v t #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PVarBV b v t -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PVarBV b v t -> r #

gmapQ :: (forall d. Data d => d -> u) -> PVarBV b v t -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PVarBV b v t -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PVarBV b v t -> m (PVarBV b v t) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PVarBV b v t -> m (PVarBV b v t) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PVarBV b v t -> m (PVarBV b v t) #

Generic (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (PVarBV b v t) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (PVarBV b v t) = D1 ('MetaData "PVarBV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "PV" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pname") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just "ptype") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 t)) :*: (S1 ('MetaSel ('Just "parg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just "pargs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(t, b, ExprBV b v)]))))

Methods

from :: PVarBV b v t -> Rep (PVarBV b v t) x #

to :: Rep (PVarBV b v t) x -> PVarBV b v t #

(Show t, Show v, Show b, Ord v, Ord b, Fixpoint v, Fixpoint b, Hashable b) => Show (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> PVarBV b v t -> ShowS #

show :: PVarBV b v t -> String #

showList :: [PVarBV b v t] -> ShowS #

Hashable b => Hashable (PVarBV b v a) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> PVarBV b v a -> Int #

hash :: PVarBV b v a -> Int #

(Ord b, Fixpoint b, Hashable b, PPrint b, Ord v, Fixpoint v, PPrint v) => PPrint (PVarBV b v a) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> PVarBV b v a -> Doc #

pprintPrec :: Int -> Tidy -> PVarBV b v a -> Doc #

type Rep (PVarBV b v t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (PVarBV b v t) = D1 ('MetaData "PVarBV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "PV" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pname") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just "ptype") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 t)) :*: (S1 ('MetaSel ('Just "parg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just "pargs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(t, b, ExprBV b v)]))))

pvType :: PVarBV b v t -> t Source #

type PredicateV v = PredicateBV Symbol v Source #

newtype PredicateBV b v Source #

Constructors

Pr [UsedPVarBV b v] 

Instances

Instances details
NFData Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: Predicate -> () #

Monoid Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Show Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.PrettyPrint

Meet Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

SubsTy tv RSort Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, RSort) -> Predicate -> Predicate Source #

(Binary v, Binary b) => Binary (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: PredicateBV b v -> Put #

get :: Get (PredicateBV b v) #

putList :: [PredicateBV b v] -> Put #

Eq b => Semigroup (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(<>) :: PredicateBV b v -> PredicateBV b v -> PredicateBV b v #

sconcat :: NonEmpty (PredicateBV b v) -> PredicateBV b v #

stimes :: Integral b0 => b0 -> PredicateBV b v -> PredicateBV b v #

(Ord b, Ord v) => Eq (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: PredicateBV b v -> PredicateBV b v -> Bool #

(/=) :: PredicateBV b v -> PredicateBV b v -> Bool #

(Data v, Data b) => Data (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> PredicateBV b v -> c (PredicateBV b v) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (PredicateBV b v) #

toConstr :: PredicateBV b v -> Constr #

dataTypeOf :: PredicateBV b v -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (PredicateBV b v)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (PredicateBV b v)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> PredicateBV b v -> PredicateBV b v #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PredicateBV b v -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PredicateBV b v -> r #

gmapQ :: (forall d. Data d => d -> u) -> PredicateBV b v -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PredicateBV b v -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PredicateBV b v -> m (PredicateBV b v) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PredicateBV b v -> m (PredicateBV b v) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PredicateBV b v -> m (PredicateBV b v) #

Generic (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (PredicateBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (PredicateBV b v)

Methods

from :: PredicateBV b v -> Rep (PredicateBV b v) x #

to :: Rep (PredicateBV b v) x -> PredicateBV b v #

(Ord b, Ord v, Hashable b) => Hashable (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> PredicateBV b v -> Int #

hash :: PredicateBV b v -> Int #

(Ord b, Fixpoint b, Hashable b, PPrint b, Ord v, Fixpoint v, PPrint v) => PPrint (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> PredicateBV b v -> Doc #

pprintPrec :: Int -> Tidy -> PredicateBV b v -> Doc #

Hashable v => Subable (PredicateBV v v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Variable (PredicateBV v v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Variable (PredicateBV v v) = v

Methods

syms :: PredicateBV v v -> [Variable (PredicateBV v v)]

substa :: (Variable (PredicateBV v v) -> Variable (PredicateBV v v)) -> PredicateBV v v -> PredicateBV v v

substf :: (Variable (PredicateBV v v) -> ExprBV (Variable (PredicateBV v v)) (Variable (PredicateBV v v))) -> PredicateBV v v -> PredicateBV v v

subst :: SubstV (Variable (PredicateBV v v)) -> PredicateBV v v -> PredicateBV v v

subst1 :: PredicateBV v v -> (Variable (PredicateBV v v), ExprBV (Variable (PredicateBV v v)) (Variable (PredicateBV v v))) -> PredicateBV v v

(Binder b, Ord v, PredicateCompat b v) => ToReft (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (PredicateBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (PredicateBV b v) = v
type ReftBind (PredicateBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (PredicateBV b v) = b
Top (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: PredicateBV b v -> PredicateBV b v Source #

type Rep (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (PredicateBV b v)
type Variable (PredicateBV v v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Variable (PredicateBV v v) = v
type ReftBind (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (PredicateBV b v) = b
type ReftVar (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (PredicateBV b v) = v

class PredicateCompat b v where Source #

Methods

pappV :: Proxy b -> Int -> v Source #

pnameV :: PVarBV b v a -> v Source #

pargV :: PVarBV b v a -> v Source #

Instances

Instances details
PredicateCompat Symbol LocSymbol Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pappV :: Proxy Symbol -> Int -> LocSymbol Source #

pnameV :: PVarBV Symbol LocSymbol a -> LocSymbol Source #

pargV :: PVarBV Symbol LocSymbol a -> LocSymbol Source #

PredicateCompat Symbol Symbol Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pappV :: Proxy Symbol -> Int -> Symbol Source #

pnameV :: PVarBV Symbol Symbol a -> Symbol Source #

pargV :: PVarBV Symbol Symbol a -> Symbol Source #

Expression Arguments

notExprArg :: RTypeV v c tv r -> Bool Source #

Manipulating Predicates

emapExprVM :: (Monad m, Hashable b) => ([b] -> v -> m v') -> ExprBV b v -> m (ExprBV b 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

mapPVarV :: (v -> v') -> (t -> t') -> PVarBV b v t -> PVarBV b v' t' Source #

emapPVarVM :: (Monad m, Hashable b) => ([b] -> v -> m v') -> ([b] -> t -> m t') -> PVarBV b v t -> m (PVarBV b v' t') Source #

A map traversal that collects the local variables in scope

emapSubstVM :: (Monad m, Hashable b) => ([b] -> v -> m v') -> KVarSubst b v -> m (KVarSubst b v') Source #

pvars :: PredicateBV b v -> [UsedPVarBV b v] Source #

pApp :: PredicateCompat b v => v -> [ExprBV b v] -> ExprBV b v Source #

Refinements

type UReft r = UReftV Symbol r Source #

type UReftV v r = UReftBV Symbol v r Source #

data UReftBV b v r Source #

Constructors

MkUReft 

Fields

Instances

Instances details
NFData REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

rnf :: REnv -> () #

Monoid REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

mempty :: REnv #

mappend :: REnv -> REnv -> REnv #

mconcat :: [REnv] -> REnv #

Semigroup REnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Types

Methods

(<>) :: REnv -> REnv -> REnv #

sconcat :: NonEmpty REnv -> REnv #

stimes :: Integral b => b -> REnv -> REnv #

Ord DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.DataDecl

Exception Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Show BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Specs

Show Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

PPrint Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> Error -> Doc #

pprintPrec :: Int -> Tidy -> Error -> Doc #

Expand DataCtor Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand DataDecl Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareType Source #

expand on a BareType actually applies the type- and expression- aliases.

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand RReft Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand SpecType Source #

expand on a SpecType simply expands the refinements, i.e. *does not* apply the type aliases, but just the 1. predicate aliases, 2. inlines, 3. stuff from LogicMap

Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareDef Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareMeasure Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareSpec Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand BareRTAlias Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

REq SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Equality

Result Error Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: Error -> FixResult UserError Source #

Freshable m Integer => Freshable m RReft Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Fresh

Methods

fresh :: m RReft Source #

true :: Bool -> RReft -> m RReft Source #

refresh :: Bool -> RReft -> m RReft Source #

SubsTy TyVar Type SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (TyVar, Type) -> SpecType -> SpecType Source #

SubsTy RTyVar RSort SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar RTyVar SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy tv ty r => SubsTy tv ty (UReft r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> UReft r -> UReft r Source #

(SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv NoReft)) => SubsTy tv ty (RTProp c tv (UReft r)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> RTProp c tv (UReft r) -> RTProp c tv (UReft r) Source #

NFData r => NFData (UReft r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: UReft r -> () #

Monoid a => Monoid (UReft a) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

mempty :: UReft a #

mappend :: UReft a -> UReft a -> UReft a #

mconcat :: [UReft a] -> UReft a #

Exception [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

PPrint (UReft r) => Show (UReft r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> UReft r -> ShowS #

show :: UReft r -> String #

showList :: [UReft r] -> ShowS #

PPrint (CtxError SpecType) Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

pprintTidy :: Tidy -> CtxError SpecType -> Doc #

pprintPrec :: Int -> Tidy -> CtxError SpecType -> Doc #

Expression (UReft ()) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

expr :: UReft () -> Expr

REq (UReft Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.Equality

Methods

(=*=) :: UReft Reft -> UReft Reft -> Bool Source #

Result [Error] Source # 
Instance details

Defined in Language.Haskell.Liquid.UX.Tidy

Methods

result :: [Error] -> FixResult UserError Source #

Functor (UReftBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b0) -> UReftBV b v a -> UReftBV b v b0 #

(<$) :: a -> UReftBV b v b0 -> UReftBV b v a #

Foldable (UReftBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fold :: Monoid m => UReftBV b v m -> m #

foldMap :: Monoid m => (a -> m) -> UReftBV b v a -> m #

foldMap' :: Monoid m => (a -> m) -> UReftBV b v a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> UReftBV b v a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> UReftBV b v a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> UReftBV b v a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> UReftBV b v a -> b0 #

foldr1 :: (a -> a -> a) -> UReftBV b v a -> a #

foldl1 :: (a -> a -> a) -> UReftBV b v a -> a #

toList :: UReftBV b v a -> [a] #

null :: UReftBV b v a -> Bool #

length :: UReftBV b v a -> Int #

elem :: Eq a => a -> UReftBV b v a -> Bool #

maximum :: Ord a => UReftBV b v a -> a #

minimum :: Ord a => UReftBV b v a -> a #

sum :: Num a => UReftBV b v a -> a #

product :: Num a => UReftBV b v a -> a #

Traversable (UReftBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b0) -> UReftBV b v a -> f (UReftBV b v b0) #

sequenceA :: Applicative f => UReftBV b v (f a) -> f (UReftBV b v a) #

mapM :: Monad m => (a -> m b0) -> UReftBV b v a -> m (UReftBV b v b0) #

sequence :: Monad m => UReftBV b v (m a) -> m (UReftBV b v a) #

(Binary v, Binary b, Binary r) => Binary (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: UReftBV b v r -> Put #

get :: Get (UReftBV b v r) #

putList :: [UReftBV b v r] -> Put #

(Semigroup a, Eq b) => Semigroup (UReftBV b v a) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(<>) :: UReftBV b v a -> UReftBV b v a -> UReftBV b v a #

sconcat :: NonEmpty (UReftBV b v a) -> UReftBV b v a #

stimes :: Integral b0 => b0 -> UReftBV b v a -> UReftBV b v a #

(Ord b, Ord v, Eq r) => Eq (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: UReftBV b v r -> UReftBV b v r -> Bool #

(/=) :: UReftBV b v r -> UReftBV b v r -> Bool #

(Data r, Data v, Data b) => Data (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> UReftBV b v r -> c (UReftBV b v r) #

gunfold :: (forall b0 r0. Data b0 => c (b0 -> r0) -> c r0) -> (forall r1. r1 -> c r1) -> Constr -> c (UReftBV b v r) #

toConstr :: UReftBV b v r -> Constr #

dataTypeOf :: UReftBV b v r -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (UReftBV b v r)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UReftBV b v r)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> UReftBV b v r -> UReftBV b v r #

gmapQl :: (r0 -> r' -> r0) -> r0 -> (forall d. Data d => d -> r') -> UReftBV b v r -> r0 #

gmapQr :: forall r0 r'. (r' -> r0 -> r0) -> r0 -> (forall d. Data d => d -> r') -> UReftBV b v r -> r0 #

gmapQ :: (forall d. Data d => d -> u) -> UReftBV b v r -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UReftBV b v r -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UReftBV b v r -> m (UReftBV b v r) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UReftBV b v r -> m (UReftBV b v r) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UReftBV b v r -> m (UReftBV b v r) #

Generic (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (UReftBV b v r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (UReftBV b v r) = D1 ('MetaData "UReftBV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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 (PredicateBV b v))))

Methods

from :: UReftBV b v r -> Rep (UReftBV b v r) x #

to :: Rep (UReftBV b v r) x -> UReftBV b v r #

(Ord b, Ord v, Hashable r, Hashable b) => Hashable (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> UReftBV b v r -> Int #

hash :: UReftBV b v r -> Int #

(PPrint (PredicateBV b v), ToReft (PredicateBV b v), PPrint r, ToReft r) => PPrint (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.PrettyPrint

Methods

pprintTidy :: Tidy -> UReftBV b v r -> Doc #

pprintPrec :: Int -> Tidy -> UReftBV b v r -> Doc #

(Subable r, Variable r ~ v) => Subable (UReftBV v v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Variable (UReftBV v v r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Variable (UReftBV v v r) = v

Methods

syms :: UReftBV v v r -> [Variable (UReftBV v v r)]

substa :: (Variable (UReftBV v v r) -> Variable (UReftBV v v r)) -> UReftBV v v r -> UReftBV v v r

substf :: (Variable (UReftBV v v r) -> ExprBV (Variable (UReftBV v v r)) (Variable (UReftBV v v r))) -> UReftBV v v r -> UReftBV v v r

subst :: SubstV (Variable (UReftBV v v r)) -> UReftBV v v r -> UReftBV v v r

subst1 :: UReftBV v v r -> (Variable (UReftBV v v r), ExprBV (Variable (UReftBV v v r)) (Variable (UReftBV v v r))) -> UReftBV v v r

(IsReft r, Binder v, ReftBind r ~ v, ReftVar r ~ v) => IsReft (UReftBV v v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

ofReft :: ReftBV (ReftBind (UReftBV v v r)) (ReftVar (UReftBV v v r)) -> UReftBV v v r Source #

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RType BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

(Meet r, Eq v) => Meet (UReftBV v v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

meet :: UReftBV v v r -> UReftBV v v r -> UReftBV v v r Source #

(ToReft r, ReftBind r ~ b, ReftVar r ~ v) => ToReft (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (UReftBV b v r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (UReftBV b v r) = ReftVar r
type ReftBind (UReftBV b v r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (UReftBV b v r) = ReftBind r

Methods

toReft :: UReftBV b v r -> ReftBV (ReftBind (UReftBV b v r)) (ReftVar (UReftBV b v r)) Source #

toUReft :: UReftBV b v r -> UReftBV (ReftBind (UReftBV b v r)) (ReftVar (UReftBV b v r)) (ReftBV (ReftBind (UReftBV b v r)) (ReftVar (UReftBV b v r))) Source #

Top r => Top (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: UReftBV b v r -> UReftBV b v r Source #

type Rep (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (UReftBV b v r) = D1 ('MetaData "UReftBV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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 (PredicateBV b v))))
type Variable (UReftBV v v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Variable (UReftBV v v r) = v
type ReftBind (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (UReftBV b v r) = ReftBind r
type ReftVar (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (UReftBV b v r) = ReftVar r

mapUReftV :: (v -> v') -> (r -> r') -> UReftV v r -> UReftV v' r' Source #

emapUReftVM :: Monad m => ([Symbol] -> v -> m v') -> (r -> m r') -> UReftV v r -> m (UReftV v' r') Source #

type NoReft = NoReftB Symbol Source #

data NoReftB b Source #

Constructors

NoReft 

Instances

Instances details
Functor NoReftB Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b) -> NoReftB a -> NoReftB b #

(<$) :: a -> NoReftB b -> NoReftB a #

Foldable NoReftB Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fold :: Monoid m => NoReftB m -> m #

foldMap :: Monoid m => (a -> m) -> NoReftB a -> m #

foldMap' :: Monoid m => (a -> m) -> NoReftB a -> m #

foldr :: (a -> b -> b) -> b -> NoReftB a -> b #

foldr' :: (a -> b -> b) -> b -> NoReftB a -> b #

foldl :: (b -> a -> b) -> b -> NoReftB a -> b #

foldl' :: (b -> a -> b) -> b -> NoReftB a -> b #

foldr1 :: (a -> a -> a) -> NoReftB a -> a #

foldl1 :: (a -> a -> a) -> NoReftB a -> a #

toList :: NoReftB a -> [a] #

null :: NoReftB a -> Bool #

length :: NoReftB a -> Int #

elem :: Eq a => a -> NoReftB a -> Bool #

maximum :: Ord a => NoReftB a -> a #

minimum :: Ord a => NoReftB a -> a #

sum :: Num a => NoReftB a -> a #

product :: Num a => NoReftB a -> a #

Traversable NoReftB Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b) -> NoReftB a -> f (NoReftB b) #

sequenceA :: Applicative f => NoReftB (f a) -> f (NoReftB a) #

mapM :: Monad m => (a -> m b) -> NoReftB a -> m (NoReftB b) #

sequence :: Monad m => NoReftB (m a) -> m (NoReftB a) #

SubsTy Symbol RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, RSort) -> Sort -> Sort Source #

SubsTy BTyVar BSort BSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BSort -> BSort Source #

SubsTy BTyVar BSort BTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, BSort) -> BTyCon -> BTyCon Source #

SubsTy RTyVar RSort Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> Sort -> Sort Source #

SubsTy RTyVar RSort RSort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RSort -> RSort Source #

SubsTy RTyVar RSort RTyCon Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (RTyVar, RSort) -> RTyCon -> RTyCon Source #

SubsTy RTyVar RSort SpecType Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy tv RSort Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, RSort) -> Predicate -> Predicate Source #

SubsTy tv ty NoReft Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> NoReft -> NoReft Source #

SubsTy Symbol Symbol (RTProp BTyCon BTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (Symbol, Symbol) -> RTProp BTyCon BTyVar r -> RTProp BTyCon BTyVar r Source #

(SubsTy tv ty (UReft r), SubsTy tv ty (RType c tv NoReft)) => SubsTy tv ty (RTProp c tv (UReft r)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (tv, ty) -> RTProp c tv (UReft r) -> RTProp c tv (UReft r) Source #

SubsTy BTyVar (RType BTyCon BTyVar NoReft) Sort Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

subt :: (BTyVar, RType BTyCon BTyVar NoReft) -> Sort -> Sort Source #

SubsTy BTyVar (RType c BTyVar NoReft) BTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) RTyVar Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy BTyVar (RType c BTyVar NoReft) (RTVar BTyVar (RType c BTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

SubsTy RTyVar (RType RTyCon RTyVar NoReft) (RTVar RTyVar (RType RTyCon RTyVar NoReft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Binary (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: NoReftB b -> Put #

get :: Get (NoReftB b) #

putList :: [NoReftB b] -> Put #

NFData (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: NoReftB b -> () #

Monoid (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

mempty :: NoReftB b #

mappend :: NoReftB b -> NoReftB b -> NoReftB b #

mconcat :: [NoReftB b] -> NoReftB b #

Semigroup (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(<>) :: NoReftB b -> NoReftB b -> NoReftB b #

sconcat :: NonEmpty (NoReftB b) -> NoReftB b #

stimes :: Integral b0 => b0 -> NoReftB b -> NoReftB b #

Eq (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: NoReftB b -> NoReftB b -> Bool #

(/=) :: NoReftB b -> NoReftB b -> Bool #

Data b => Data (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> NoReftB b -> c (NoReftB b) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NoReftB b) #

toConstr :: NoReftB b -> Constr #

dataTypeOf :: NoReftB b -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (NoReftB b)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (NoReftB b)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> NoReftB b -> NoReftB b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NoReftB b -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NoReftB b -> r #

gmapQ :: (forall d. Data d => d -> u) -> NoReftB b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NoReftB b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NoReftB b -> m (NoReftB b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NoReftB b -> m (NoReftB b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NoReftB b -> m (NoReftB b) #

Generic (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (NoReftB b) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (NoReftB b) = D1 ('MetaData "NoReftB" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "NoReft" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: NoReftB b -> Rep (NoReftB b) x #

to :: Rep (NoReftB b) x -> NoReftB b #

Hashable (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> NoReftB b -> Int #

hash :: NoReftB b -> Int #

PPrint (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> NoReftB b -> Doc #

pprintPrec :: Int -> Tidy -> NoReftB b -> Doc #

Hashable b => Subable (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Variable (NoReftB b) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Variable (NoReftB b) = b

Methods

syms :: NoReftB b -> [Variable (NoReftB b)]

substa :: (Variable (NoReftB b) -> Variable (NoReftB b)) -> NoReftB b -> NoReftB b

substf :: (Variable (NoReftB b) -> ExprBV (Variable (NoReftB b)) (Variable (NoReftB b))) -> NoReftB b -> NoReftB b

subst :: SubstV (Variable (NoReftB b)) -> NoReftB b -> NoReftB b

subst1 :: NoReftB b -> (Variable (NoReftB b), ExprBV (Variable (NoReftB b)) (Variable (NoReftB b))) -> NoReftB b

Subable (RRProp Reft)

Subable Instances -----------------------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Associated Types

type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RRProp Reft -> [Variable (RRProp Reft)]

substa :: (Variable (RRProp Reft) -> Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

substf :: (Variable (RRProp Reft) -> ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft -> RRProp Reft

subst :: SubstV (Variable (RRProp Reft)) -> RRProp Reft -> RRProp Reft

subst1 :: RRProp Reft -> (Variable (RRProp Reft), ExprBV (Variable (RRProp Reft)) (Variable (RRProp Reft))) -> RRProp Reft

Expand (BRType NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Expand (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Expand

Binder b => IsReft (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

ofReft :: ReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b)) -> NoReftB b Source #

Meet (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

meet :: NoReftB b -> NoReftB b -> NoReftB b Source #

Binder b => ToReft (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (NoReftB b) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (NoReftB b) = Symbol
type ReftBind (NoReftB b) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (NoReftB b) = b

Methods

toReft :: NoReftB b -> ReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b)) Source #

toUReft :: NoReftB b -> UReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b)) (ReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b))) Source #

Top (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: NoReftB b -> NoReftB b Source #

Show tv => Show (RTVU c tv) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RTVU c tv -> ShowS #

show :: RTVU c tv -> String #

showList :: [RTVU c tv] -> ShowS #

(Eq c, Eq tv, Hashable tv, PPrint tv, TyConable c, PPrint c) => Eq (RType c tv NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(==) :: RType c tv NoReft -> RType c tv NoReft -> Bool #

(/=) :: RType c tv NoReft -> RType c tv NoReft -> Bool #

PPrint (RTProp c tv r) => Show (RTProp c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> RTProp c tv r -> ShowS #

show :: RTProp c tv r -> String #

showList :: [RTProp c tv r] -> ShowS #

Meet (RTProp BTyCon BTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Monoid (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

mempty :: RTPropBV v v c tv r #

mappend :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

mconcat :: [RTPropBV v v c tv r] -> RTPropBV v v c tv r #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Semigroup (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

(<>) :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

sconcat :: NonEmpty (RTPropBV v v c tv r) -> RTPropBV v v c tv r #

stimes :: Integral b => b -> RTPropBV v v c tv r -> RTPropBV v v c tv r #

(IsReft r, Subable r, TyConable c, Binder v, Variable r ~ v, ReftBind r ~ v) => Subable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

Associated Types

type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Methods

syms :: RTPropBV v v c tv r -> [Variable (RTPropBV v v c tv r)]

substa :: (Variable (RTPropBV v v c tv r) -> Variable (RTPropBV v v c tv r)) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

substf :: (Variable (RTPropBV v v c tv r) -> ExprBV (Variable (RTPropBV v v c tv r)) (Variable (RTPropBV v v c tv r))) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

subst :: SubstV (Variable (RTPropBV v v c tv r)) -> RTPropBV v v c tv r -> RTPropBV v v c tv r

subst1 :: RTPropBV v v c tv r -> (Variable (RTPropBV v v c tv r), ExprBV (Variable (RTPropBV v v c tv r)) (Variable (RTPropBV v v c tv r))) -> RTPropBV v v c tv r

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Meet (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

meet :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r Source #

type Rep (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (NoReftB b) = D1 ('MetaData "NoReftB" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'False) (C1 ('MetaCons "NoReft" 'PrefixI 'False) (U1 :: Type -> Type))
type Variable (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Variable (NoReftB b) = b
type Variable (RRProp Reft) 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

type Variable (RRProp Reft) = Symbol
type ReftBind (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (NoReftB b) = b
type ReftVar (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (NoReftB b) = Symbol
type Variable (RTPropBV v v c tv r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

type Variable (RTPropBV v v c tv r) = v

Parse-time entities describing refined data types

type SizeFun = SizeFunV Symbol Source #

Termination expressions

data SizeFunV v Source #

Constructors

IdSizeFun

x -> F.EVar x

SymSizeFun (Located v)

x -> f x

Instances

Instances details
Functor SizeFunV Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

fmap :: (a -> b) -> SizeFunV a -> SizeFunV b #

(<$) :: a -> SizeFunV b -> SizeFunV a #

Foldable SizeFunV Source # 
Instance details

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 #

toList :: SizeFunV a -> [a] #

null :: SizeFunV a -> Bool #

length :: SizeFunV a -> Int #

elem :: Eq a => a -> SizeFunV a -> Bool #

maximum :: Ord a => SizeFunV a -> a #

minimum :: Ord a => SizeFunV a -> a #

sum :: Num a => SizeFunV a -> a #

product :: Num a => SizeFunV a -> a #

Traversable SizeFunV Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

traverse :: Applicative f => (a -> f b) -> SizeFunV a -> f (SizeFunV b) #

sequenceA :: Applicative f => SizeFunV (f a) -> f (SizeFunV a) #

mapM :: Monad m => (a -> m b) -> SizeFunV a -> m (SizeFunV b) #

sequence :: Monad m => SizeFunV (m a) -> m (SizeFunV a) #

Binary v => Binary (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: SizeFunV v -> Put #

get :: Get (SizeFunV v) #

putList :: [SizeFunV v] -> Put #

NFData v => NFData (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: SizeFunV v -> () #

Eq v => Eq (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: SizeFunV v -> SizeFunV v -> Bool #

(/=) :: SizeFunV v -> SizeFunV v -> Bool #

Data v => Data (SizeFunV v) Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep (SizeFunV v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (SizeFunV v) = D1 ('MetaData "SizeFunV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

Methods

from :: SizeFunV v -> Rep (SizeFunV v) x #

to :: Rep (SizeFunV v) x -> SizeFunV v #

Show v => Show (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> SizeFunV v -> ShowS #

show :: SizeFunV v -> String #

showList :: [SizeFunV v] -> ShowS #

Hashable v => Hashable (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> SizeFunV v -> Int #

hash :: SizeFunV v -> Int #

PPrint v => PPrint (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> SizeFunV v -> Doc #

pprintPrec :: Int -> Tidy -> SizeFunV v -> Doc #

type Rep (SizeFunV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep (SizeFunV v) = D1 ('MetaData "SizeFunV" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))

szFun :: SizeFun -> Symbol -> Expr Source #

data TyConP Source #

Instances

Instances details
Data TyConP Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep TyConP 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep TyConP = D1 ('MetaData "TyConP" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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))))))

Methods

from :: TyConP -> Rep TyConP x #

to :: Rep TyConP x -> TyConP #

Show TyConP Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

PPrint TyConP Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

pprintTidy :: Tidy -> TyConP -> Doc #

pprintPrec :: Int -> Tidy -> TyConP -> Doc #

Loc TyConP Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

srcSpan :: TyConP -> SrcSpan

type Rep TyConP Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep TyConP = D1 ('MetaData "TyConP" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-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 RRType Source #

Arguments

 = RTypeV Symbol RTyCon RTyVar

Resolved version

type RRProp r = Ref RSort (RRType r) Source #

type BRType Source #

Arguments

 = RTypeV Symbol BTyCon BTyVar

Bare parsed version

type BRProp r = BRPropV Symbol r Source #

type BRPropV v r = Ref (BSortV v) (BRTypeV v r) Source #

type BSortV v = BRTypeV v NoReft Source #

type RTVU c tv = RTVUV Symbol c tv Source #

Unified Representation of Refinement Types --------------------------------

type PVU c tv = PVUV Symbol c tv Source #

Instantiated RType

type BareType = BareTypeV Symbol Source #

type BareTypeV v = BRTypeV v (RReftV v) Source #

type UsedPVar = UsedPVarV Symbol Source #

Predicates ----------------------------------------------------------------

type UsedPVarV v = UsedPVarBV Symbol v Source #

type RReft = RReftV Symbol Source #

type RReftV v = RReftBV Symbol v Source #

type RReftBV b v = UReftBV b v (ReftBV b v) Source #

Printer Configuration

data PPEnv Source #

Printer ----------------------------------------------------------------

Constructors

PP 

Fields

Instances

Instances details
Show PPEnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

showsPrec :: Int -> PPEnv -> ShowS #

show :: PPEnv -> String #

showList :: [PPEnv] -> ShowS #

Refined Function Info

newtype RFInfo Source #

Constructors

RFInfo 

Fields

Instances

Instances details
Binary RFInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

put :: RFInfo -> Put #

get :: Get RFInfo #

putList :: [RFInfo] -> Put #

NFData RFInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

rnf :: RFInfo -> () #

Eq RFInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

(==) :: RFInfo -> RFInfo -> Bool #

(/=) :: RFInfo -> RFInfo -> Bool #

Data RFInfo Source # 
Instance details

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

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type Rep RFInfo 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep RFInfo = D1 ('MetaData "RFInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'True) (C1 ('MetaCons "RFInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "permitTC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))))

Methods

from :: RFInfo -> Rep RFInfo x #

to :: Rep RFInfo x -> RFInfo #

Show RFInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Hashable RFInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

hashWithSalt :: Int -> RFInfo -> Int #

hash :: RFInfo -> Int #

type Rep RFInfo Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type Rep RFInfo = D1 ('MetaData "RFInfo" "Language.Haskell.Liquid.Types.RType" "liquidhaskell-boot-0.9.14.1-inplace" 'True) (C1 ('MetaCons "RFInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "permitTC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))))

Converting to and from refinements

class (Binder (ReftBind r), Eq (ReftVar r)) => ToReft r where Source #

Types that have one associated refinement representible by a ReftBV

Minimal complete definition

toReft

Associated Types

type ReftVar r Source #

type ReftBind r Source #

type ReftBind r = Symbol

Methods

toReft :: r -> ReftBV (ReftBind r) (ReftVar r) Source #

toUReft :: r -> UReftBV (ReftBind r) (ReftVar r) (ReftBV (ReftBind r) (ReftVar r)) Source #

Instances

Instances details
ToReft () Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar () 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar () = Symbol
type ReftBind () 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind () = Symbol

Methods

toReft :: () -> ReftBV (ReftBind ()) (ReftVar ()) Source #

toUReft :: () -> UReftBV (ReftBind ()) (ReftVar ()) (ReftBV (ReftBind ()) (ReftVar ())) Source #

Binder b => ToReft (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (NoReftB b) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (NoReftB b) = Symbol
type ReftBind (NoReftB b) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (NoReftB b) = b

Methods

toReft :: NoReftB b -> ReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b)) Source #

toUReft :: NoReftB b -> UReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b)) (ReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b))) Source #

(Binder b, Eq v) => ToReft (ReftBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (ReftBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (ReftBV b v) = v
type ReftBind (ReftBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (ReftBV b v) = b

Methods

toReft :: ReftBV b v -> ReftBV (ReftBind (ReftBV b v)) (ReftVar (ReftBV b v)) Source #

toUReft :: ReftBV b v -> UReftBV (ReftBind (ReftBV b v)) (ReftVar (ReftBV b v)) (ReftBV (ReftBind (ReftBV b v)) (ReftVar (ReftBV b v))) Source #

(Binder b, Ord v, PredicateCompat b v) => ToReft (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (PredicateBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (PredicateBV b v) = v
type ReftBind (PredicateBV b v) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (PredicateBV b v) = b
ToReft t => ToReft (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (RefB b τ t) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (RefB b τ t) = ReftVar t
type ReftBind (RefB b τ t) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (RefB b τ t) = ReftBind t

Methods

toReft :: RefB b τ t -> ReftBV (ReftBind (RefB b τ t)) (ReftVar (RefB b τ t)) Source #

toUReft :: RefB b τ t -> UReftBV (ReftBind (RefB b τ t)) (ReftVar (RefB b τ t)) (ReftBV (ReftBind (RefB b τ t)) (ReftVar (RefB b τ t))) Source #

(ToReft r, ReftBind r ~ b, ReftVar r ~ v) => ToReft (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Associated Types

type ReftVar (UReftBV b v r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftVar (UReftBV b v r) = ReftVar r
type ReftBind (UReftBV b v r) 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

type ReftBind (UReftBV b v r) = ReftBind r

Methods

toReft :: UReftBV b v r -> ReftBV (ReftBind (UReftBV b v r)) (ReftVar (UReftBV b v r)) Source #

toUReft :: UReftBV b v r -> UReftBV (ReftBind (UReftBV b v r)) (ReftVar (UReftBV b v r)) (ReftBV (ReftBind (UReftBV b v r)) (ReftVar (UReftBV b v r))) Source #

class Semigroup r => Meet r where Source #

Types that can be combined conjunctively in some sense

Minimal complete definition

Nothing

Methods

meet :: r -> r -> r Source #

Instances

Instances details
Meet Predicate Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Meet () Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

meet :: () -> () -> () Source #

Meet (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

meet :: NoReftB b -> NoReftB b -> NoReftB b Source #

(Binder v, Fixpoint v) => Meet (ReftBV v v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

meet :: ReftBV v v -> ReftBV v v -> ReftBV v v Source #

Meet (RTProp BTyCon BTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar Reft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar NoReft) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RTProp RTyCon RTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Meet (RType BTyCon BTyVar (UReft Reft)) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Semigroup (RType RTyCon RTyVar r) => Meet (RType RTyCon RTyVar r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

(Meet r, Eq v) => Meet (UReftBV v v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

meet :: UReftBV v v r -> UReftBV v v r -> UReftBV v v r Source #

(SubsTy tv (RTypeBV v v c tv (NoReftB v)) c, OkRTBV v v c tv r, Variable r ~ v, ReftBind r ~ v, IsReft r, FreeVar c tv, Subable r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) r, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTypeBV v v c tv (NoReftB v)), SubsTy tv (RTypeBV v v c tv (NoReftB v)) tv, SubsTy tv (RTypeBV v v c tv (NoReftB v)) (RTVar tv (RTypeBV v v c tv (NoReftB v)))) => Meet (RTPropBV v v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RefType

Methods

meet :: RTPropBV v v c tv r -> RTPropBV v v c tv r -> RTPropBV v v c tv r Source #

class Top r where Source #

Types whose refinements can be cleared to true

Methods

top :: r -> r Source #

Instances

Instances details
Top () Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: () -> () Source #

Top (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: NoReftB b -> NoReftB b Source #

Binder b => Top (ReftBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: ReftBV b v -> ReftBV b v Source #

Top (PredicateBV b v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: PredicateBV b v -> PredicateBV b v Source #

Top t => Top (RefB b τ t) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: RefB b τ t -> RefB b τ t Source #

Top r => Top (UReftBV b v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

top :: UReftBV b v r -> UReftBV b v r Source #

Top r => Top (RTypeBV b v c tv r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RTypeOp

Methods

top :: RTypeBV b v c tv r -> RTypeBV b v c tv r Source #

class (ToReft r, Meet r, Top r) => IsReft r where Source #

Types that can be constructed from a ReftBV

Methods

ofReft :: ReftBV (ReftBind r) (ReftVar r) -> r Source #

Instances

Instances details
IsReft () Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

ofReft :: ReftBV (ReftBind ()) (ReftVar ()) -> () Source #

Binder b => IsReft (NoReftB b) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

ofReft :: ReftBV (ReftBind (NoReftB b)) (ReftVar (NoReftB b)) -> NoReftB b Source #

(Binder v, Fixpoint v, Eq v) => IsReft (ReftBV v v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

ofReft :: ReftBV (ReftBind (ReftBV v v)) (ReftVar (ReftBV v v)) -> ReftBV v v Source #

(IsReft r, Binder v, ReftBind r ~ v, ReftVar r ~ v) => IsReft (UReftBV v v r) Source # 
Instance details

Defined in Language.Haskell.Liquid.Types.RType

Methods

ofReft :: ReftBV (ReftBind (UReftBV v v r)) (ReftVar (UReftBV v v r)) -> UReftBV v v r Source #

isTauto :: ToReft r => r -> Bool Source #

Orphan instances

Monoid Reft Source # 
Instance details

Methods

mempty :: Reft #

mappend :: Reft -> Reft -> Reft #

mconcat :: [Reft] -> Reft #

PPrint TyCon Source # 
Instance details

Methods

pprintTidy :: Tidy -> TyCon -> Doc #

pprintPrec :: Int -> Tidy -> TyCon -> Doc #

(Binder v, Fixpoint v) => Semigroup (ReftBV v v) Source # 
Instance details

Methods

(<>) :: ReftBV v v -> ReftBV v v -> ReftBV v v #

sconcat :: NonEmpty (ReftBV v v) -> ReftBV v v #

stimes :: Integral b => b -> ReftBV v v -> ReftBV v v #