predicate-typed-0.7.4.0: Predicates, Refinement types and Dsl

Safe HaskellNone
LanguageHaskell2010

Predicate.Data.Ordering

Description

promoted Ordering functions

Synopsis

Documentation

data p > q infix 4 #

compare if expression p is greater than q

>>> pl @(Id > "xx") "abc"
False ("abc" > "xx")
Val False
>>> pl @(Id > "aa") "abc"
True ("abc" > "aa")
Val True
>>> pl @(Fst > Snd) (True,False)
True (True > False)
Val True
Instances
P (Cmp CGt p q) x => P (p > q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p > q) x :: Type #

Methods

eval :: MonadEval m => proxy (p > q) -> POpts -> x -> m (TT (PP (p > q) x)) #

Show (p > q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p > q) -> ShowS #

show :: (p > q) -> String #

showList :: [p > q] -> ShowS #

type PP (p > q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p > q :: Type) x = Bool

data p >= q infix 4 #

compare if expression p is greater than or equal to q

Instances
P (Cmp CGe p q) x => P (p >= q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p >= q) x :: Type #

Methods

eval :: MonadEval m => proxy (p >= q) -> POpts -> x -> m (TT (PP (p >= q) x)) #

Show (p >= q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p >= q) -> ShowS #

show :: (p >= q) -> String #

showList :: [p >= q] -> ShowS #

type PP (p >= q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p >= q :: Type) x = Bool

data p == q infix 4 #

compare if expression p is equal to q

>>> pl @(Fst == Snd) ("ab","xyzabw")
False ("ab" == "xyzabw")
Val False
>>> pl @(Fst == Snd) ("aBc","AbC")
False ("aBc" == "AbC")
Val False
>>> pz @(Fst == Snd) ("aBc","aBc")
Val True
>>> pl @(Id == "Abc") "abc"
False ("abc" == "Abc")
Val False
>>> pl @(Fst == Snd) (True,False)
False (True == False)
Val False
>>> pl @(Not Id *** Id >> Fst == Snd) (True,False)
True ((>>) True | {False == False})
Val True
Instances
P (Cmp CEq p q) x => P (p == q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p == q) x :: Type #

Methods

eval :: MonadEval m => proxy (p == q) -> POpts -> x -> m (TT (PP (p == q) x)) #

Show (p == q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p == q) -> ShowS #

show :: (p == q) -> String #

showList :: [p == q] -> ShowS #

type PP (p == q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p == q :: Type) x = Bool

data p /= q infix 4 #

compare if expression p is not equal to q

>>> pl @(Fst /= Snd) ("ab","xyzabw")
True ("ab" /= "xyzabw")
Val True
Instances
P (Cmp CNe p q) x => P (p /= q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p /= q) x :: Type #

Methods

eval :: MonadEval m => proxy (p /= q) -> POpts -> x -> m (TT (PP (p /= q) x)) #

Show (p /= q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p /= q) -> ShowS #

show :: (p /= q) -> String #

showList :: [p /= q] -> ShowS #

type PP (p /= q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p /= q :: Type) x = Bool

data p <= q infix 4 #

compare if expression p is less than or equal to q

>>> pl @(Not (Fst >> Len <= 6)) ([2..7],True)
False (Not ((>>) True | {6 <= 6}))
Val False
>>> pl @(Fst >> Len <= 6) ([2..7],True)
True ((>>) True | {6 <= 6})
Val True
>>> pl @(Length Fst <= 6) ([2..7],True)
True (6 <= 6)
Val True
>>> pl @(Fst >> (Len <= 6)) ([2..7],True)
True ((>>) True | {6 <= 6})
Val True
Instances
P (Cmp CLe p q) x => P (p <= q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p <= q) x :: Type #

Methods

eval :: MonadEval m => proxy (p <= q) -> POpts -> x -> m (TT (PP (p <= q) x)) #

Show (p <= q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p <= q) -> ShowS #

show :: (p <= q) -> String #

showList :: [p <= q] -> ShowS #

type PP (p <= q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p <= q :: Type) x = Bool

data p < q infix 4 #

compare if expression p is less than q

Instances
P (Cmp CLt p q) x => P (p < q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p < q) x :: Type #

Methods

eval :: MonadEval m => proxy (p < q) -> POpts -> x -> m (TT (PP (p < q) x)) #

Show (p < q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p < q) -> ShowS #

show :: (p < q) -> String #

showList :: [p < q] -> ShowS #

type PP (p < q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p < q :: Type) x = Bool

data p >~ q infix 4 #

case-insensitive compare if string expression p is greater than q

Instances
P (CmpI CGt p q) x => P (p >~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p >~ q) x :: Type #

Methods

eval :: MonadEval m => proxy (p >~ q) -> POpts -> x -> m (TT (PP (p >~ q) x)) #

Show (p >~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p >~ q) -> ShowS #

show :: (p >~ q) -> String #

showList :: [p >~ q] -> ShowS #

type PP (p >~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p >~ q :: Type) x = Bool

data p >=~ q infix 4 #

case-insensitive compare if string expression p is greater than or equal to q

Instances
P (CmpI CGe p q) x => P (p >=~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p >=~ q) x :: Type #

Methods

eval :: MonadEval m => proxy (p >=~ q) -> POpts -> x -> m (TT (PP (p >=~ q) x)) #

Show (p >=~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p >=~ q) -> ShowS #

show :: (p >=~ q) -> String #

showList :: [p >=~ q] -> ShowS #

type PP (p >=~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p >=~ q :: Type) x = Bool

data p ==~ q infix 4 #

case-insensitive compare if string expression p is equal to q

Instances
P (CmpI CEq p q) x => P (p ==~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p ==~ q) x :: Type #

Methods

eval :: MonadEval m => proxy (p ==~ q) -> POpts -> x -> m (TT (PP (p ==~ q) x)) #

Show (p ==~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p ==~ q) -> ShowS #

show :: (p ==~ q) -> String #

showList :: [p ==~ q] -> ShowS #

type PP (p ==~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p ==~ q :: Type) x = Bool

data p /=~ q infix 4 #

case-insensitive compare if string expression p is not equal to q

Instances
P (CmpI CNe p q) x => P (p /=~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p /=~ q) x :: Type #

Methods

eval :: MonadEval m => proxy (p /=~ q) -> POpts -> x -> m (TT (PP (p /=~ q) x)) #

Show (p /=~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p /=~ q) -> ShowS #

show :: (p /=~ q) -> String #

showList :: [p /=~ q] -> ShowS #

type PP (p /=~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p /=~ q :: Type) x = Bool

data p <=~ q infix 4 #

case-insensitive compare if string expression p is less than or equal to q

Instances
P (CmpI CLe p q) x => P (p <=~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p <=~ q) x :: Type #

Methods

eval :: MonadEval m => proxy (p <=~ q) -> POpts -> x -> m (TT (PP (p <=~ q) x)) #

Show (p <=~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p <=~ q) -> ShowS #

show :: (p <=~ q) -> String #

showList :: [p <=~ q] -> ShowS #

type PP (p <=~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p <=~ q :: Type) x = Bool

data p <~ q infix 4 #

case-insensitive compare if string expression p is less than q

Instances
P (CmpI CLt p q) x => P (p <~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p <~ q) x :: Type #

Methods

eval :: MonadEval m => proxy (p <~ q) -> POpts -> x -> m (TT (PP (p <~ q) x)) #

Show (p <~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p <~ q) -> ShowS #

show :: (p <~ q) -> String #

showList :: [p <~ q] -> ShowS #

type PP (p <~ q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p <~ q :: Type) x = Bool

data Gt n #

compare if expression p is greater than q

>>> pl @(Gt 4) 5
True (5 > 4)
Val True
Instances
P (GtT n) x => P (Gt n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Gt n) x :: Type #

Methods

eval :: MonadEval m => proxy (Gt n) -> POpts -> x -> m (TT (PP (Gt n) x)) #

Show (Gt n) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Gt n -> ShowS #

show :: Gt n -> String #

showList :: [Gt n] -> ShowS #

type PP (Gt n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Gt n :: Type) x

data Ge n #

compare if expression p is greater than or equal to q

Instances
P (GeT n) x => P (Ge n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Ge n) x :: Type #

Methods

eval :: MonadEval m => proxy (Ge n) -> POpts -> x -> m (TT (PP (Ge n) x)) #

Show (Ge n) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Ge n -> ShowS #

show :: Ge n -> String #

showList :: [Ge n] -> ShowS #

type PP (Ge n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Ge n :: Type) x

data Same n #

compare if expression p is equal to q

Instances
P (SameT n) x => P (Same n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Same n) x :: Type #

Methods

eval :: MonadEval m => proxy (Same n) -> POpts -> x -> m (TT (PP (Same n) x)) #

Show (Same n) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Same n -> ShowS #

show :: Same n -> String #

showList :: [Same n] -> ShowS #

type PP (Same n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Same n :: Type) x

data Le n #

compare if expression p is less than or equal to q

Instances
P (LeT n) x => P (Le n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Le n) x :: Type #

Methods

eval :: MonadEval m => proxy (Le n) -> POpts -> x -> m (TT (PP (Le n) x)) #

Show (Le n) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Le n -> ShowS #

show :: Le n -> String #

showList :: [Le n] -> ShowS #

type PP (Le n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Le n :: Type) x

data Lt n #

compare if expression p is less than to q

Instances
P (LtT n) x => P (Lt n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Lt n) x :: Type #

Methods

eval :: MonadEval m => proxy (Lt n) -> POpts -> x -> m (TT (PP (Lt n) x)) #

Show (Lt n) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Lt n -> ShowS #

show :: Lt n -> String #

showList :: [Lt n] -> ShowS #

type PP (Lt n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Lt n :: Type) x

data Ne n #

compare if expression p is not equal to q

Instances
P (NeT n) x => P (Ne n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Ne n) x :: Type #

Methods

eval :: MonadEval m => proxy (Ne n) -> POpts -> x -> m (TT (PP (Ne n) x)) #

Show (Ne n) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Ne n -> ShowS #

show :: Ne n -> String #

showList :: [Ne n] -> ShowS #

type PP (Ne n :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Ne n :: Type) x

data p ==! q infix 4 #

similar to compare

>>> pz @(Fst ==! Snd) (10,9)
Val GT
>>> pz @(14 % 3 ==! Fst -% Snd) (-10,7)
Val GT
>>> pz @(Fst ==! Snd) (10,11)
Val LT
>>> pz @(Snd ==! (L12 >> Head)) (('x',[10,12,13]),10)
Val EQ
>>> pl @("aa" ==! Id) "aaaa"
Present LT ((==!) "aa" < "aaaa")
Val LT
>>> pl @(Pairs >> Map (First (Succ >> Succ) >> Fst ==! Snd)) [1,2,3,6,8]
Present [GT,GT,LT,EQ] ((>>) [GT,GT,LT,EQ] | {Map [GT,GT,LT,EQ] | [(1,2),(2,3),(3,6),(6,8)]})
Val [GT,GT,LT,EQ]
>>> pl @((Ones << ShowP Id) >> Map' (Fst ==! Snd) Pairs) 1234223
Present [LT,LT,LT,GT,EQ,LT] ((>>) [LT,LT,LT,GT,EQ,LT] | {Map [LT,LT,LT,GT,EQ,LT] | [("1","2"),("2","3"),("3","4"),("4","2"),("2","2"),("2","3")]})
Val [LT,LT,LT,GT,EQ,LT]
>>> pl @("Abc" ==! Id) "abc"
Present LT ((==!) "Abc" < "abc")
Val LT
>>> pl @(Fst ==! Snd) (3,12)
Present LT ((==!) 3 < 12)
Val LT
>>> pl @(Fst ==! Snd) ("aBc","AbC")
Present GT ((==!) "aBc" > "AbC")
Val GT
>>> pl @(Snd ==! Fst) ("aBc","AbC")
Present LT ((==!) "AbC" < "aBc")
Val LT
Instances
(Ord (PP p a), PP p a ~ PP q a, P p a, Show (PP q a), P q a) => P (p ==! q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p ==! q) a :: Type #

Methods

eval :: MonadEval m => proxy (p ==! q) -> POpts -> a -> m (TT (PP (p ==! q) a)) #

Show (p ==! q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p ==! q) -> ShowS #

show :: (p ==! q) -> String #

showList :: [p ==! q] -> ShowS #

type PP (p ==! q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p ==! q :: Type) a = Ordering

data OrdA' p q #

Instances
P (OrdAT' p q) x => P (OrdA' p q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (OrdA' p q) x :: Type #

Methods

eval :: MonadEval m => proxy (OrdA' p q) -> POpts -> x -> m (TT (PP (OrdA' p q) x)) #

Show (OrdA' p q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> OrdA' p q -> ShowS #

show :: OrdA' p q -> String #

showList :: [OrdA' p q] -> ShowS #

type PP (OrdA' p q :: Type) x # 
Instance details

Defined in Predicate.Data.Ordering

type PP (OrdA' p q :: Type) x

data OrdA #

similar to compare but using a tuple as input

Instances
Show OrdA # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> OrdA -> ShowS #

show :: OrdA -> String #

showList :: [OrdA] -> ShowS #

P (OrdA' Id Id) x => P OrdA x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP OrdA x :: Type #

Methods

eval :: MonadEval m => proxy OrdA -> POpts -> x -> m (TT (PP OrdA x)) #

type PP OrdA x # 
Instance details

Defined in Predicate.Data.Ordering

type PP OrdA x = PP (OrdA' Id Id) x

data p ===~ q infix 4 #

compare two strings ignoring case and return an ordering

>>> pz @(Fst ===~ Snd) ("abC","aBc")
Val EQ
>>> pz @(Fst ===~ Snd) ("abC","DaBc")
Val LT
>>> pl @(Fst ===~ Snd &&& Fst ==! Snd) ("abc","abc")
Present (EQ,EQ) ('(EQ,EQ))
Val (EQ,EQ)
>>> pl @(Fst ===~ Snd) ("aBc","AbC")
Present EQ ((===~) aBc = AbC)
Val EQ
>>> pl @("Abc" ===~ Id) "abc"
Present EQ ((===~) Abc = abc)
Val EQ
>>> pl @("Abc" ==~ Id) "abc"
True (Abc ==~ abc)
Val True
>>> pl @(Fst ==~ Snd) ("aBc","AbC")
True (aBc ==~ AbC)
Val True
>>> pl @(Fst ==~ Snd && Fst == Snd) ("Abc","Abc")
True (True && True)
Val True
Instances
(PP p a ~ String, PP p a ~ PP q a, P p a, P q a) => P (p ===~ q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (p ===~ q) a :: Type #

Methods

eval :: MonadEval m => proxy (p ===~ q) -> POpts -> a -> m (TT (PP (p ===~ q) a)) #

Show (p ===~ q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> (p ===~ q) -> ShowS #

show :: (p ===~ q) -> String #

showList :: [p ===~ q] -> ShowS #

type PP (p ===~ q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

type PP (p ===~ q :: Type) a = Ordering

data Cmp (o :: OrderingP) p q #

compare two values using the given ordering o

>>> pl @(Lt 4) 123
False (123 < 4)
Val False
>>> pl @(Lt 4) 1
True (1 < 4)
Val True
>>> pl @(Negate 7 <..> 20) (-4)
True (-7 <= -4 <= 20)
Val True
>>> pl @(Negate 7 <..> 20) 21
False (21 <= 20)
Val False
Instances
(GetOrd o, Ord (PP p a), Show (PP p a), PP p a ~ PP q a, P p a, P q a) => P (Cmp o p q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Cmp o p q) a :: Type #

Methods

eval :: MonadEval m => proxy (Cmp o p q) -> POpts -> a -> m (TT (PP (Cmp o p q) a)) #

Show (Cmp o p q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Cmp o p q -> ShowS #

show :: Cmp o p q -> String #

showList :: [Cmp o p q] -> ShowS #

type PP (Cmp o p q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

type PP (Cmp o p q :: Type) a = Bool

data CmpI (o :: OrderingP) p q #

compare two strings ignoring case using the given ordering o

Instances
(PP p a ~ String, GetOrd o, PP p a ~ PP q a, P p a, P q a) => P (CmpI o p q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (CmpI o p q) a :: Type #

Methods

eval :: MonadEval m => proxy (CmpI o p q) -> POpts -> a -> m (TT (PP (CmpI o p q) a)) #

Show (CmpI o p q) # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> CmpI o p q -> ShowS #

show :: CmpI o p q -> String #

showList :: [CmpI o p q] -> ShowS #

type PP (CmpI o p q :: Type) a # 
Instance details

Defined in Predicate.Data.Ordering

type PP (CmpI o p q :: Type) a = Bool

data Asc #

a type level predicate for a monotonic increasing list

>>> pl @Asc "aaacdef"
True ((>>) True | {All(6)})
Val True
>>> pz @Asc [1,2,3,4,5,5,7]
Val True
>>> pz @Asc "axacdef"
Val False
Instances
Show Asc # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Asc -> ShowS #

show :: Asc -> String #

showList :: [Asc] -> ShowS #

P AscT x => P Asc x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP Asc x :: Type #

Methods

eval :: MonadEval m => proxy Asc -> POpts -> x -> m (TT (PP Asc x)) #

type PP Asc x # 
Instance details

Defined in Predicate.Data.Ordering

type PP Asc x

data Asc' #

a type level predicate for a strictly increasing list

>>> pz @Asc' [1,2,3,4,5,5,7]
Val False
>>> pz @Asc' []
Val True
>>> pz @Asc' [-10]
Val True
Instances
Show Asc' # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Asc' -> ShowS #

show :: Asc' -> String #

showList :: [Asc'] -> ShowS #

P AscT' x => P Asc' x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP Asc' x :: Type #

Methods

eval :: MonadEval m => proxy Asc' -> POpts -> x -> m (TT (PP Asc' x)) #

type PP Asc' x # 
Instance details

Defined in Predicate.Data.Ordering

type PP Asc' x

data Desc #

a type level predicate for a monotonic decreasing list

Instances
Show Desc # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Desc -> ShowS #

show :: Desc -> String #

showList :: [Desc] -> ShowS #

P DescT x => P Desc x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP Desc x :: Type #

Methods

eval :: MonadEval m => proxy Desc -> POpts -> x -> m (TT (PP Desc x)) #

type PP Desc x # 
Instance details

Defined in Predicate.Data.Ordering

type PP Desc x

data Desc' #

a type level predicate for a strictly decreasing list

Instances
Show Desc' # 
Instance details

Defined in Predicate.Data.Ordering

Methods

showsPrec :: Int -> Desc' -> ShowS #

show :: Desc' -> String #

showList :: [Desc'] -> ShowS #

P DescT' x => P Desc' x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP Desc' x :: Type #

Methods

eval :: MonadEval m => proxy Desc' -> POpts -> x -> m (TT (PP Desc' x)) #

type PP Desc' x # 
Instance details

Defined in Predicate.Data.Ordering

type PP Desc' x

data AllPositive #

a type level predicate for all positive elements in a list

>>> pz @AllPositive [1,5,10,2,3]
Val True
>>> pz @AllPositive [0,1,5,10,2,3]
Val False
>>> pz @AllPositive [3,1,-5,10,2,3]
Val False
Instances
Show AllPositive # 
Instance details

Defined in Predicate.Data.Ordering

P AllPositiveT x => P AllPositive x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP AllPositive x :: Type #

Methods

eval :: MonadEval m => proxy AllPositive -> POpts -> x -> m (TT (PP AllPositive x)) #

type PP AllPositive x # 
Instance details

Defined in Predicate.Data.Ordering

data Positive #

a type level predicate for a positive number

Instances
Show Positive # 
Instance details

Defined in Predicate.Data.Ordering

P PositiveT x => P Positive x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP Positive x :: Type #

Methods

eval :: MonadEval m => proxy Positive -> POpts -> x -> m (TT (PP Positive x)) #

type PP Positive x # 
Instance details

Defined in Predicate.Data.Ordering

type PP Positive x

data AllNegative #

a type level predicate for all negative elements in a list

>>> pz @AllNegative [-1,-5,-10,-2,-3]
Val True
Instances
Show AllNegative # 
Instance details

Defined in Predicate.Data.Ordering

P AllNegativeT x => P AllNegative x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP AllNegative x :: Type #

Methods

eval :: MonadEval m => proxy AllNegative -> POpts -> x -> m (TT (PP AllNegative x)) #

type PP AllNegative x # 
Instance details

Defined in Predicate.Data.Ordering

data Negative #

a type level predicate for a negative number

Instances
Show Negative # 
Instance details

Defined in Predicate.Data.Ordering

P NegativeT x => P Negative x # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP Negative x :: Type #

Methods

eval :: MonadEval m => proxy Negative -> POpts -> x -> m (TT (PP Negative x)) #

type PP Negative x # 
Instance details

Defined in Predicate.Data.Ordering

type PP Negative x