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

Safe HaskellNone
LanguageHaskell2010

Predicate.Core

Contents

Description

Dsl for evaluating and displaying type level expressions

Synopsis

basic types

data Id Source #

identity function

>>> pz @Id 23
PresentT 23
Instances
Show a => P Id a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Id a :: Type Source #

Methods

eval :: MonadEval m => proxy Id -> POpts -> a -> m (TT (PP Id a)) Source #

type PP Id a Source # 
Instance details

Defined in Predicate.Core

type PP Id a = a

data IdT Source #

identity function that also displays the type information for debugging

>>> pz @IdT 23
PresentT 23
Instances
(Typeable a, Show a) => P IdT a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP IdT a :: Type Source #

Methods

eval :: MonadEval m => proxy IdT -> POpts -> a -> m (TT (PP IdT a)) Source #

type PP IdT a Source # 
Instance details

Defined in Predicate.Core

type PP IdT a = a

data I Source #

identity function without show instance of Id

>>> pz @I 23
PresentT 23
Instances
P I a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP I a :: Type Source #

Methods

eval :: MonadEval m => proxy I -> POpts -> a -> m (TT (PP I a)) Source #

type PP I a Source # 
Instance details

Defined in Predicate.Core

type PP I a = a

data W (p :: k) Source #

transparent predicate wrapper to make k of kind Type so it can be in a promoted list (cant mix kinds) see Do

>>> pz @'[W 123, Id] 99
PresentT [123,99]
>>> pz @'[W "abc", W "def", Id, Id] "ghi"
PresentT ["abc","def","ghi","ghi"]
Instances
P p a => P (W p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (W p) a :: Type Source #

Methods

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

type PP (W p :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (W p :: Type) a = PP p a

data Msg prt p Source #

add a message to give more context to the evaluation tree

>>> pan @(Msg "[somemessage]" Id) 999
P [somemessage] Id 999
PresentT 999
>>> pan @(Msg Id 999) "info message:"
P info message: '999
PresentT 999
Instances
(P prt a, PP prt a ~ String, P p a) => P (Msg prt p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Msg prt p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Msg prt p) -> POpts -> a -> m (TT (PP (Msg prt p) a)) Source #

type PP (Msg prt p :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (Msg prt p :: Type) a = PP p a

data MsgI prt p Source #

add a message to give more context to the evaluation tree

>>> pan @(MsgI "[somemessage] " Id) 999
P [somemessage] Id 999
PresentT 999
>>> pan @(MsgI Id 999) "info message:"
P info message:'999
PresentT 999
Instances
(P prt a, PP prt a ~ String, P p a) => P (MsgI prt p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (MsgI prt p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (MsgI prt p) -> POpts -> a -> m (TT (PP (MsgI prt p) a)) Source #

type PP (MsgI prt p :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (MsgI prt p :: Type) a = PP p a

data Hide p Source #

run the expression 'p' but remove the subtrees

Instances
P p x => P (Hide p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Hide p) x :: Type Source #

Methods

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

type PP (Hide p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Hide p :: Type) x = PP p x

data Width (n :: Nat) p Source #

override the display width for the expression 'p'

Instances
(KnownNat n, P p a) => P (Width n p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Width n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Width n p) -> POpts -> a -> m (TT (PP (Width n p) a)) Source #

type PP (Width n p :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (Width n p :: Type) a = PP p a

data Hole (t :: Type) Source #

Instances
Typeable t => P (Hole t :: Type) a Source #

Acts as a proxy in this dsl where you can explicitly set the Type.

It is passed around as an argument to help the type checker when needed.

Instance details

Defined in Predicate.Core

Associated Types

type PP (Hole t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Hole t) -> POpts -> a -> m (TT (PP (Hole t) a)) Source #

type PP (Hole t :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (Hole t :: Type) a = t

data Unproxy Source #

used for type inference

Instances
Typeable a => P Unproxy (Proxy a) Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Unproxy (Proxy a) :: Type Source #

Methods

eval :: MonadEval m => proxy Unproxy -> POpts -> Proxy a -> m (TT (PP Unproxy (Proxy a))) Source #

type PP Unproxy (Proxy a) Source # 
Instance details

Defined in Predicate.Core

type PP Unproxy (Proxy a) = a

data Len Source #

similar to length

>>> pz @Len [10,4,5,12,3,4]
PresentT 6
>>> pz @Len []
PresentT 0
Instances
(Show a, as ~ [a]) => P Len as Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Len as :: Type Source #

Methods

eval :: MonadEval m => proxy Len -> POpts -> as -> m (TT (PP Len as)) Source #

type PP Len as Source # 
Instance details

Defined in Predicate.Core

type PP Len as = Int

data Length p Source #

similar to length for Foldable instances

>>> pz @(Length Id) (Left "aa")
PresentT 0
>>> pz @(Length Id) (Right "aa")
PresentT 1
>>> pz @(Length Right') (Right "abcd")
PresentT 4
>>> pz @(Length (Thd (Snd Id))) (True,(23,'x',[10,9,1,3,4,2]))
PresentT 6
Instances
(PP p x ~ t a, P p x, Show (t a), Foldable t) => P (Length p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Length p) x :: Type Source #

Methods

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

type PP (Length p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Length p :: Type) x = Int

data Map p q Source #

similar to map

>>> pz @(Map (Pred Id) Id) [1..5]
PresentT [0,1,2,3,4]
Instances
(Show (PP p a), P p a, PP q x ~ f a, P q x, Show a, Show (f a), Foldable f) => P (Map p q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Map p q) x :: Type Source #

Methods

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

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

Defined in Predicate.Core

type PP (Map p q :: Type) x = [PP p (ExtractAFromTA (PP q x))]

data Do (ps :: [k]) Source #

processes a type level list predicates running each in sequence: see >>

>>> pz @(Do [Pred Id, ShowP Id, Id &&& Len]) 9876543
PresentT ("9876542",7)
>>> pz @(Do '[W 123, W "xyz", Len &&& Id, Pred Id *** Id<>Id]) ()
PresentT (2,"xyzxyz")
>>> pl @(Do '[Succ Id,Id,ShowP Id,Ones Id,Map (ReadBase Int 8 Id) Id]) 1239
Present [1,2,4,0] ((>>) [1,2,4,0] | {Map [1,2,4,0] | ["1","2","4","0"]})
PresentT [1,2,4,0]
>>> pl @(Do '[Pred Id,Id,ShowP Id,Ones Id,Map (ReadBase Int 8 Id) Id]) 1239
Error invalid base 8 (1238 (>>) rhs failed)
FailT "invalid base 8"
>>> pl @(Do '[4,5,6]) ()
Present 6 ((>>) 6 | {'6})
PresentT 6
>>> pl @(Do '["abc", "Def", "ggg", "hhhhh"]) ()
Present "hhhhh" ((>>) "hhhhh" | {'"hhhhh"})
PresentT "hhhhh"
>>> pl @(Do '[ 'LT, 'EQ, 'GT ]) ()
Present GT ((>>) GT | {'GT})
PresentT GT
>>> pl @(Do '[4 % 4,22 % 1 ,12 -% 4]) ()
Present (-3) % 1 ((>>) (-3) % 1 | {Negate (-3) % 1 | 3 % 1})
PresentT ((-3) % 1)
>>> pl @(Do '[ W ('PresentT I), W 'FalseT, Not Id]) False
True ((>>) True | {Not (Id False)})
TrueT
>>> pl @(Do '[W ('PresentT Id), W 'FalseT]) True -- have to wrap them cos BoolT a vs BoolT Bool ie different types
False ((>>) False | {W 'FalseT})
FalseT
>>> pl @(Do '[1,2,3]) ()
Present 3 ((>>) 3 | {'3})
PresentT 3
Instances
P (DoExpandT ps) a => P (Do ps :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Do ps) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Do ps) -> POpts -> a -> m (TT (PP (Do ps) a)) Source #

type PP (Do ps :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (Do ps :: Type) a

data Pure (t :: Type -> Type) p Source #

similar to pure

>>> pz @(Pure Maybe Id) 4
PresentT (Just 4)
>>> pz @(Pure [] Id) 4
PresentT [4]
>>> pz @(Pure (Either String) (Fst Id)) (13,True)
PresentT (Right 13)
>>> pl @(Pure Maybe Id) 'x'
Present Just 'x' (Pure Just 'x' | 'x')
PresentT (Just 'x')
>>> pl @(Pure (Either _) Id) 'x'
Present Right 'x' (Pure Right 'x' | 'x')
PresentT (Right 'x')
>>> pl @(Pure (Either _) Id >> Swap) 'x'
Present Left 'x' ((>>) Left 'x' | {Swap Left 'x' | Right 'x'})
PresentT (Left 'x')
>>> pl @(Pure (Either ()) Id >> Swap) 'x'
Present Left 'x' ((>>) Left 'x' | {Swap Left 'x' | Right 'x'})
PresentT (Left 'x')
>>> pl @(Pure (Either String) Id >> Swap) 123
Present Left 123 ((>>) Left 123 | {Swap Left 123 | Right 123})
PresentT (Left 123)
Instances
(P p x, Show (PP p x), Show (t (PP p x)), Applicative t) => P (Pure t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Pure t p) x :: Type Source #

Methods

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

type PP (Pure t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Pure t p :: Type) x = t (PP p x)

data Coerce (t :: k) Source #

similar to coerce

>>> pz @(Coerce (SG.Sum Integer)) (Identity (-13))
PresentT (Sum {getSum = -13})
>>> pl @(Coerce SG.Any) True
Present Any {getAny = True} (Coerce Any {getAny = True} | True)
PresentT (Any {getAny = True})
>>> pl @(Coerce Bool) (SG.Any True)
Present True (Coerce True | Any {getAny = True})
PresentT True
Instances
(Show a, Show t, Coercible t a) => P (Coerce t :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Coerce t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Coerce t) -> POpts -> a -> m (TT (PP (Coerce t) a)) Source #

type PP (Coerce t :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (Coerce t :: Type) a = t

data OneP p Source #

gets the singleton value from a foldable

>>> pl @(OneP Id) [10..15]
Error OneP 6 elements (expected one element)
FailT "OneP 6 elements"
>>> pl @(OneP Id) [10]
Present 10 (OneP)
PresentT 10
>>> pl @(OneP Id) []
Error OneP empty (expected one element)
FailT "OneP empty"
>>> pl @(OneP Id) (Just 10)
Present 10 (OneP)
PresentT 10
>>> pl @(OneP Id) Nothing
Error OneP empty (expected one element)
FailT "OneP empty"
>>> pl @(OneP Id) [12]
Present 12 (OneP)
PresentT 12
>>> pl @(OneP Id) [1..5]
Error OneP 5 elements (expected one element)
FailT "OneP 5 elements"
>>> pl @(OneP Id) ([] ::[()])
Error OneP empty (expected one element)
FailT "OneP empty"
Instances
(Foldable t, PP p x ~ t a, P p x) => P (OneP p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (OneP p) x :: Type Source #

Methods

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

type PP (OneP p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (OneP p :: Type) x = ExtractAFromTA (PP p x)

data p >> q infixr 1 Source #

compose expressions

>>> pz @(Fst Id >> Snd Id) ((11,12),'x')
PresentT 12
Instances
(Show (PP p a), Show (PP q (PP p a)), P p a, P q (PP p a)) => P (p >> q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p >> q) a :: Type Source #

Methods

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

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

Defined in Predicate.Core

type PP (p >> q :: Type) a = PP q (PP p a)

tree evaluation

pan :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

displays the evaluation tree in plain text without colors

panv :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

displays the evaluation tree in plain text without colors and verbose

pa :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

displays the evaluation tree using colors without background colors

pu :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

display the evaluation tree using unicode and colors pu '(Id, "abc", 123) [1..4] @

pab :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

displays the evaluation tree using background colors

pub :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

displays the evaluation tree using unicode and colors with background colors

pav :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

pa and verbose

puv :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

pu and verbose

pl :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

same as pz but adds context to the end result

pz :: forall p a. (Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

skips the evaluation tree and just displays the end result

run :: forall opts p a. (OptTC opts, Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

evaluate a typelevel expression (use type applications to pass in the options and the expression)

>>> run @OZ @Id 123
PresentT 123
>>> run @('OMsg "field1" ':# OL) @('Left Id) (Right 123)
field1 >>> Error 'Left found Right
FailT "'Left found Right"
>>> run @(OptTT '[ 'OMsg "test", OU, 'OEmpty, OL, 'OMsg "field2"]) @('FailT '[]) ()
test | field2 >>> Error 'FailT _ (BoolT)
FailT "'FailT _"

runs :: forall optss p a. (OptTC (OptTT optss), Show (PP p a), P p a) => a -> IO (BoolT (PP p a)) Source #

run expression with multiple options in a list

>>> runs @'[ OL, 'OMsg "field2"] @'( 'True, 'False) ()
field2 >>> Present (True,False) ('(True,False))
PresentT (True,False)
>>> runs @'[ 'OMsg "test", OU, 'OEmpty, OL, 'OMsg "field2"] @('FailT '[]) ()
test | field2 >>> Error 'FailT _ (BoolT)
FailT "'FailT _"

class P p a where Source #

This is the core class. Each instance of this class can be combined into a dsl using >>

Associated Types

type PP (p :: k) a :: Type Source #

Methods

eval Source #

Arguments

:: MonadEval m 
=> proxy p

proxy for the expression

-> POpts

display options

-> a

value

-> m (TT (PP p a))

returns a tree of results

Instances
GetBool b => P (b :: Bool) a Source #

pulls the type level Bool to the value level

>>> pz @'True "not used"
TrueT
>>> pz @'False ()
FalseT
Instance details

Defined in Predicate.Core

Associated Types

type PP b a :: Type Source #

Methods

eval :: MonadEval m => proxy b -> POpts -> a -> m (TT (PP b a)) Source #

GetOrdering cmp => P (cmp :: Ordering) a Source #

extracts the value level representation of the promoted Ordering

>>> pz @'LT "not used"
PresentT LT
>>> pz @'EQ ()
PresentT EQ
Instance details

Defined in Predicate.Core

Associated Types

type PP cmp a :: Type Source #

Methods

eval :: MonadEval m => proxy cmp -> POpts -> a -> m (TT (PP cmp a)) Source #

KnownNat n => P (n :: Nat) a Source #

extracts the value level representation of the type level Nat

>>> pz @123 ()
PresentT 123
Instance details

Defined in Predicate.Core

Associated Types

type PP n a :: Type Source #

Methods

eval :: MonadEval m => proxy n -> POpts -> a -> m (TT (PP n a)) Source #

KnownSymbol s => P (s :: Symbol) a Source #

pulls the type level Symbol to the value level as a String

>>> pz @"hello world" ()
PresentT "hello world"
Instance details

Defined in Predicate.Core

Associated Types

type PP s a :: Type Source #

Methods

eval :: MonadEval m => proxy s -> POpts -> a -> m (TT (PP s a)) Source #

P () a Source #

extracts the value level representation of the type level '()

>>> pz @'() ()
PresentT ()
Instance details

Defined in Predicate.Core

Associated Types

type PP () a :: Type Source #

Methods

eval :: MonadEval m => proxy () -> POpts -> a -> m (TT (PP () a)) Source #

P () a Source #

const () function

>>> pz @() "Asf"
PresentT ()
Instance details

Defined in Predicate.Core

Associated Types

type PP () a :: Type Source #

Methods

eval :: MonadEval m => proxy () -> POpts -> a -> m (TT (PP () a)) Source #

(Show a, as ~ [a]) => P Len as Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Len as :: Type Source #

Methods

eval :: MonadEval m => proxy Len -> POpts -> as -> m (TT (PP Len as)) Source #

(Typeable a, Show a) => P IdT a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP IdT a :: Type Source #

Methods

eval :: MonadEval m => proxy IdT -> POpts -> a -> m (TT (PP IdT a)) Source #

Show a => P Id a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Id a :: Type Source #

Methods

eval :: MonadEval m => proxy Id -> POpts -> a -> m (TT (PP Id a)) Source #

P I a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP I a :: Type Source #

Methods

eval :: MonadEval m => proxy I -> POpts -> a -> m (TT (PP I a)) Source #

Show x => P Dup x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP Dup x :: Type Source #

Methods

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

P ThesesT x => P Theses x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Theses x :: Type Source #

Methods

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

P ThatsT x => P Thats x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Thats x :: Type Source #

Methods

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

P ThissT x => P Thiss x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Thiss x :: Type Source #

Methods

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

P AllNegativeT x => P AllNegative x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP AllNegative x :: Type Source #

Methods

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

P AllPositiveT x => P AllPositive x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP AllPositive x :: Type Source #

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

type PP Desc' x :: Type Source #

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

type PP Desc x :: Type Source #

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

type PP Asc' x :: Type Source #

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

type PP Asc x :: Type Source #

Methods

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

P OddT x => P Odd x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP Odd x :: Type Source #

Methods

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

P EvenT x => P Even x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP Even x :: Type Source #

Methods

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

P MEmptyPT x => P MEmptyP x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP MEmptyP x :: Type Source #

Methods

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

P SapAT x => P SapA x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP SapA x :: Type Source #

Methods

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

(Show t, Reversing t) => P ReverseL t Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP ReverseL t :: Type Source #

Methods

eval :: MonadEval m => proxy ReverseL -> POpts -> t -> m (TT (PP ReverseL t)) Source #

(Show a, as ~ [a]) => P Reverse as Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Reverse as :: Type Source #

Methods

eval :: MonadEval m => proxy Reverse -> POpts -> as -> m (TT (PP Reverse as)) Source #

P Unzip3T x => P Unzip3 x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Unzip3 x :: Type Source #

Methods

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

P UnzipT x => P Unzip x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Unzip x :: Type Source #

Methods

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

([a] ~ x, Show a) => P Tails x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Tails x :: Type Source #

Methods

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

([a] ~ x, Show a) => P Inits x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Inits x :: Type Source #

Methods

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

(Show (ConsT s), Show s, Snoc s s (ConsT s) (ConsT s)) => P Unsnoc s Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Unsnoc s :: Type Source #

Methods

eval :: MonadEval m => proxy Unsnoc -> POpts -> s -> m (TT (PP Unsnoc s)) Source #

(Show (ConsT s), Show s, Cons s s (ConsT s) (ConsT s)) => P Uncons s Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Uncons s :: Type Source #

Methods

eval :: MonadEval m => proxy Uncons -> POpts -> s -> m (TT (PP Uncons s)) Source #

P NullT a => P Null a Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP Null a :: Type Source #

Methods

eval :: MonadEval m => proxy Null -> POpts -> a -> m (TT (PP Null a)) Source #

(Show l, IsList l, Show (Item l)) => P ToListExt l Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP ToListExt l :: Type Source #

Methods

eval :: MonadEval m => proxy ToListExt -> POpts -> l -> m (TT (PP ToListExt l)) Source #

(Show as, AsEmpty as) => P IsEmpty as Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP IsEmpty as :: Type Source #

Methods

eval :: MonadEval m => proxy IsEmpty -> POpts -> as -> m (TT (PP IsEmpty as)) Source #

P Stdin x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP Stdin x :: Type Source #

Methods

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

P TimeZt a Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP TimeZt a :: Type Source #

Methods

eval :: MonadEval m => proxy TimeZt -> POpts -> a -> m (TT (PP TimeZt a)) Source #

P TimeUtc a Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP TimeUtc a :: Type Source #

Methods

eval :: MonadEval m => proxy TimeUtc -> POpts -> a -> m (TT (PP TimeUtc a)) Source #

P ReadEnvAll a Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP ReadEnvAll a :: Type Source #

Methods

eval :: MonadEval m => proxy ReadEnvAll -> POpts -> a -> m (TT (PP ReadEnvAll a)) Source #

(Show a, IsText a) => P ToTitle a Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP ToTitle a :: Type Source #

Methods

eval :: MonadEval m => proxy ToTitle -> POpts -> a -> m (TT (PP ToTitle a)) Source #

(Show a, IsText a) => P ToUpper a Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP ToUpper a :: Type Source #

Methods

eval :: MonadEval m => proxy ToUpper -> POpts -> a -> m (TT (PP ToUpper a)) Source #

(Show a, IsText a) => P ToLower a Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP ToLower a :: Type Source #

Methods

eval :: MonadEval m => proxy ToLower -> POpts -> a -> m (TT (PP ToLower a)) Source #

P IsLatin1AllT x => P IsLatin1All x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLatin1All x :: Type Source #

Methods

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

P IsSeparatorAllT x => P IsSeparatorAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSeparatorAll x :: Type Source #

Methods

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

P IsOctDigitAllT x => P IsOctDigitAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsOctDigitAll x :: Type Source #

Methods

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

P IsHexDigitAllT x => P IsHexDigitAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsHexDigitAll x :: Type Source #

Methods

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

P IsControlAllT x => P IsControlAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsControlAll x :: Type Source #

Methods

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

P IsPunctuationAllT x => P IsPunctuationAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsPunctuationAll x :: Type Source #

Methods

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

P IsSpaceAllT x => P IsSpaceAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSpaceAll x :: Type Source #

Methods

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

P IsDigitAllT x => P IsDigitAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsDigitAll x :: Type Source #

Methods

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

P IsUpperAllT x => P IsUpperAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsUpperAll x :: Type Source #

Methods

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

P IsLowerAllT x => P IsLowerAll x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLowerAll x :: Type Source #

Methods

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

P IsLatin1T x => P IsLatin1 x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLatin1 x :: Type Source #

Methods

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

P IsSeparatorT x => P IsSeparator x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSeparator x :: Type Source #

Methods

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

P IsOctDigitT x => P IsOctDigit x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsOctDigit x :: Type Source #

Methods

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

P IsHexDigitT x => P IsHexDigit x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsHexDigit x :: Type Source #

Methods

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

P IsControlT x => P IsControl x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsControl x :: Type Source #

Methods

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

P IsPunctuationT x => P IsPunctuation x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsPunctuation x :: Type Source #

Methods

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

P IsSpaceT x => P IsSpace x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsSpace x :: Type Source #

Methods

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

P IsDigitT x => P IsDigit x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsDigit x :: Type Source #

Methods

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

P IsUpperT x => P IsUpper x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsUpper x :: Type Source #

Methods

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

P IsLowerT x => P IsLower x Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP IsLower x :: Type Source #

Methods

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

GetBoolT x b => P (b :: BoolT x) a Source #

typelevel BoolT

>>> pz @'TrueT ()
TrueT
>>> pz @'FalseT ()
FalseT
>>> pz @('PresentT 123) ()
PresentT False
>>> pz @('FailT '[]) ()
FailT "'FailT _"
Instance details

Defined in Predicate.Core

Associated Types

type PP b a :: Type Source #

Methods

eval :: MonadEval m => proxy b -> POpts -> a -> m (TT (PP b a)) Source #

Show a => P Pairs [a] Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP Pairs [a] :: Type Source #

Methods

eval :: MonadEval m => proxy Pairs -> POpts -> [a] -> m (TT (PP Pairs [a])) Source #

(Show a, Show b) => P Theres [These a b] Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Theres [These a b] :: Type Source #

Methods

eval :: MonadEval m => proxy Theres -> POpts -> [These a b] -> m (TT (PP Theres [These a b])) Source #

(Show a, Show b) => P Heres [These a b] Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Heres [These a b] :: Type Source #

Methods

eval :: MonadEval m => proxy Heres -> POpts -> [These a b] -> m (TT (PP Heres [These a b])) Source #

(Show a, Show b) => P PartitionThese [These a b] Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP PartitionThese [These a b] :: Type Source #

Methods

eval :: MonadEval m => proxy PartitionThese -> POpts -> [These a b] -> m (TT (PP PartitionThese [These a b])) Source #

(Ord a, Show a) => P Max [a] Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Max [a] :: Type Source #

Methods

eval :: MonadEval m => proxy Max -> POpts -> [a] -> m (TT (PP Max [a])) Source #

(Ord a, Show a) => P Min [a] Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Min [a] :: Type Source #

Methods

eval :: MonadEval m => proxy Min -> POpts -> [a] -> m (TT (PP Min [a])) Source #

(Num a, Show a) => P Product [a] Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Product [a] :: Type Source #

Methods

eval :: MonadEval m => proxy Product -> POpts -> [a] -> m (TT (PP Product [a])) Source #

(Num a, Show a) => P Sum [a] Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP Sum [a] :: Type Source #

Methods

eval :: MonadEval m => proxy Sum -> POpts -> [a] -> m (TT (PP Sum [a])) Source #

(Show (t a), Foldable t) => P ToList (t a) Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP ToList (t a) :: Type Source #

Methods

eval :: MonadEval m => proxy ToList -> POpts -> t a -> m (TT (PP ToList (t a))) Source #

(Show (t a), Foldable t) => P ToNEList (t a) Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP ToNEList (t a) :: Type Source #

Methods

eval :: MonadEval m => proxy ToNEList -> POpts -> t a -> m (TT (PP ToNEList (t a))) Source #

Show a => P Just' (Maybe a) Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP Just' (Maybe a) :: Type Source #

Methods

eval :: MonadEval m => proxy Just' -> POpts -> Maybe a -> m (TT (PP Just' (Maybe a))) Source #

Functor f => P FMapSnd (f (x, a)) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP FMapSnd (f (x, a)) :: Type Source #

Methods

eval :: MonadEval m => proxy FMapSnd -> POpts -> f (x, a) -> m (TT (PP FMapSnd (f (x, a)))) Source #

Functor f => P FMapFst (f (a, x)) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP FMapFst (f (a, x)) :: Type Source #

Methods

eval :: MonadEval m => proxy FMapFst -> POpts -> f (a, x) -> m (TT (PP FMapFst (f (a, x)))) Source #

(Show (f (t a)), Show (t (f a)), Traversable t, Applicative f) => P Sequence (t (f a)) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP Sequence (t (f a)) :: Type Source #

Methods

eval :: MonadEval m => proxy Sequence -> POpts -> t (f a) -> m (TT (PP Sequence (t (f a)))) Source #

(Show (t (t a)), Show (t a), Monad t) => P Join (t (t a)) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP Join (t (t a)) :: Type Source #

Methods

eval :: MonadEval m => proxy Join -> POpts -> t (t a) -> m (TT (PP Join (t (t a)))) Source #

(Show (t a), Show (t (t a)), Comonad t) => P Duplicate (t a) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP Duplicate (t a) :: Type Source #

Methods

eval :: MonadEval m => proxy Duplicate -> POpts -> t a -> m (TT (PP Duplicate (t a))) Source #

(Show (t a), Show a, Comonad t) => P Extract (t a) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP Extract (t a) :: Type Source #

Methods

eval :: MonadEval m => proxy Extract -> POpts -> t a -> m (TT (PP Extract (t a))) Source #

(Show a, Show b) => P PartitionEithers [Either a b] Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP PartitionEithers [Either a b] :: Type Source #

Methods

eval :: MonadEval m => proxy PartitionEithers -> POpts -> [Either a b] -> m (TT (PP PartitionEithers [Either a b])) Source #

(Show (p a b), SwapC p, Show (p b a)) => P Swap (p a b) Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Swap (p a b) :: Type Source #

Methods

eval :: MonadEval m => proxy Swap -> POpts -> p a b -> m (TT (PP Swap (p a b))) Source #

Typeable a => P Unproxy (Proxy a) Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Unproxy (Proxy a) :: Type Source #

Methods

eval :: MonadEval m => proxy Unproxy -> POpts -> Proxy a -> m (TT (PP Unproxy (Proxy a))) Source #

(Show a, Show b) => P These' (These a b) Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP These' (These a b) :: Type Source #

Methods

eval :: MonadEval m => proxy These' -> POpts -> These a b -> m (TT (PP These' (These a b))) Source #

Show a => P That' (These x a) Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP That' (These x a) :: Type Source #

Methods

eval :: MonadEval m => proxy That' -> POpts -> These x a -> m (TT (PP That' (These x a))) Source #

Show a => P This' (These a x) Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP This' (These a x) :: Type Source #

Methods

eval :: MonadEval m => proxy This' -> POpts -> These a x -> m (TT (PP This' (These a x))) Source #

(Show (p (p a b) c), Show (p a (p b c)), AssocC p) => P Unassoc (p a (p b c)) Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Unassoc (p a (p b c)) :: Type Source #

Methods

eval :: MonadEval m => proxy Unassoc -> POpts -> p a (p b c) -> m (TT (PP Unassoc (p a (p b c)))) Source #

(Show (p (p a b) c), Show (p a (p b c)), AssocC p) => P Assoc (p (p a b) c) Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP Assoc (p (p a b) c) :: Type Source #

Methods

eval :: MonadEval m => proxy Assoc -> POpts -> p (p a b) c -> m (TT (PP Assoc (p (p a b) c))) Source #

Show a => P Right' (Either x a) Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP Right' (Either x a) :: Type Source #

Methods

eval :: MonadEval m => proxy Right' -> POpts -> Either x a -> m (TT (PP Right' (Either x a))) Source #

Show a => P Left' (Either a x) Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP Left' (Either a x) :: Type Source #

Methods

eval :: MonadEval m => proxy Left' -> POpts -> Either a x -> m (TT (PP Left' (Either a x))) Source #

P ([] :: [k]) a Source #

extracts the value level representation of the type level '[]

>>> pz @'[] False
PresentT []
Instance details

Defined in Predicate.Core

Associated Types

type PP [] a :: Type Source #

Methods

eval :: MonadEval m => proxy [] -> POpts -> a -> m (TT (PP [] a)) Source #

Typeable t => P (Hole t :: Type) a Source #

Acts as a proxy in this dsl where you can explicitly set the Type.

It is passed around as an argument to help the type checker when needed.

Instance details

Defined in Predicate.Core

Associated Types

type PP (Hole t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Hole t) -> POpts -> a -> m (TT (PP (Hole t) a)) Source #

P (MEmptyTT t) x => P (MEmptyT t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (MEmptyT t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MEmptyT t) -> POpts -> x -> m (TT (PP (MEmptyT t) x)) Source #

P (MEmpty2T t) x => P (MEmpty2 t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (MEmpty2 t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MEmpty2 t) -> POpts -> x -> m (TT (PP (MEmpty2 t) x)) Source #

P (SapAT' t) x => P (SapA' t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (SapA' t) x :: Type Source #

Methods

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

P (EmptyList t :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (EmptyList t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (EmptyList t) -> POpts -> x -> m (TT (PP (EmptyList t) x)) Source #

(Show l, IsList l, l ~ l') => P (FromListExt l' :: Type) l Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (FromListExt l') l :: Type Source #

Methods

eval :: MonadEval m => proxy (FromListExt l') -> POpts -> l -> m (TT (PP (FromListExt l') l)) Source #

(a ~ Item t, Show t, IsList t, [a] ~ x) => P (FromList t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (FromList t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (FromList t) -> POpts -> x -> m (TT (PP (FromList t) x)) Source #

P (MkNothing t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (MkNothing t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MkNothing t) -> POpts -> x -> m (TT (PP (MkNothing t) x)) Source #

P (IxT' n) x => P (Ix' n :: Type) x Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (Ix' n) x :: Type Source #

Methods

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

P (ProxyT t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (ProxyT t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ProxyT t) -> POpts -> x -> m (TT (PP (ProxyT t) x)) Source #

P (ToEnumBFailT t) x => P (ToEnumBFail t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (ToEnumBFail t) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ToEnumBFail t) -> POpts -> x -> m (TT (PP (ToEnumBFail t) x)) Source #

(KnownSymbol s, CmpSymbol s "" ~ GT) => P (Char1 s :: Type) a Source # 
Instance details

Defined in Predicate.Data.Char

Associated Types

type PP (Char1 s) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Char1 s) -> POpts -> a -> m (TT (PP (Char1 s) a)) Source #

P (Nothing :: Maybe a1) (Maybe a2) Source #

expects Nothing otherwise it fails if the value is Nothing then it returns 'Proxy a' as this provides type information

>>> pz @'Nothing Nothing
PresentT Proxy
>>> pz @'Nothing (Just True)
FailT "'Nothing found Just"
Instance details

Defined in Predicate.Core

Associated Types

type PP Nothing (Maybe a2) :: Type Source #

Methods

eval :: MonadEval m => proxy Nothing -> POpts -> Maybe a2 -> m (TT (PP Nothing (Maybe a2))) Source #

(Show (f (t a)), Show (f a), Applicative t, Functor f) => P (Pure2 t :: Type) (f a) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Pure2 t) (f a) :: Type Source #

Methods

eval :: MonadEval m => proxy (Pure2 t) -> POpts -> f a -> m (TT (PP (Pure2 t) (f a))) Source #

(Show a2, PP p x ~ Maybe a2, P p x) => P (Just p :: Maybe a1) x Source #

tries to extract a from Maybe a otherwise it fails: similar to fromJust

>>> pz @('Just Id) (Just "abc")
PresentT "abc"
>>> pl @('Just Id >> Id) (Just 123)
Present 123 ((>>) 123 | {Id 123})
PresentT 123
>>> pl @('Just Id) (Just [1,2,3])
Present [1,2,3] ('Just [1,2,3] | Just [1,2,3])
PresentT [1,2,3]
>>> pl @('Just Id) (Just 10)
Present 10 ('Just 10 | Just 10)
PresentT 10
>>> pl @('Just Id) Nothing
Error 'Just(empty)
FailT "'Just(empty)"
>>> pz @('Just (Fst Id)) (Just 123,'x')
PresentT 123
Instance details

Defined in Predicate.Core

Associated Types

type PP (Just p) x :: Type Source #

Methods

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

P (Proxy t :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Proxy t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Proxy t) -> POpts -> a -> m (TT (PP (Proxy t) a)) Source #

(Show a, Show t, Coercible t a) => P (Coerce t :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Coerce t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Coerce t) -> POpts -> a -> m (TT (PP (Coerce t) a)) Source #

P (DoExpandT ps) a => P (Do ps :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Do ps) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Do ps) -> POpts -> a -> m (TT (PP (Do ps) a)) Source #

(Show (ExtractL6T (PP p x)), ExtractL6C (PP p x), P p x, Show (PP p x)) => P (L6 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L6 p) x :: Type Source #

Methods

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

(Show (ExtractL5T (PP p x)), ExtractL5C (PP p x), P p x, Show (PP p x)) => P (L5 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L5 p) x :: Type Source #

Methods

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

(Show (ExtractL4T (PP p x)), ExtractL4C (PP p x), P p x, Show (PP p x)) => P (L4 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L4 p) x :: Type Source #

Methods

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

P (L3T p) x => P (L3 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L3 p) x :: Type Source #

Methods

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

(Show (ExtractL3T (PP p x)), ExtractL3C (PP p x), P p x, Show (PP p x)) => P (Thd p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Thd p) x :: Type Source #

Methods

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

P (L2T p) x => P (L2 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L2 p) x :: Type Source #

Methods

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

(Show (ExtractL2T (PP p x)), ExtractL2C (PP p x), P p x, Show (PP p x)) => P (Snd p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Snd p) x :: Type Source #

Methods

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

P (L1T p) x => P (L1 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L1 p) x :: Type Source #

Methods

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

(Show (ExtractL1T (PP p x)), ExtractL1C (PP p x), P p x, Show (PP p x)) => P (Fst p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Fst p) x :: Type Source #

Methods

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

(Foldable t, PP p x ~ t a, P p x) => P (OneP p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (OneP p) x :: Type Source #

Methods

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

P (Fail Unproxy p) x => P (Failp p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Failp p) x :: Type Source #

Methods

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

P (Fail I p) x => P (FailS p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (FailS p) x :: Type Source #

Methods

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

(PP p x ~ Bool, P p x) => P (IdBool p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (IdBool p) x :: Type Source #

Methods

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

(PP p x ~ Bool, P p x) => P (Not p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Not p) x :: Type Source #

Methods

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

(PP p x ~ t a, P p x, Show (t a), Foldable t) => P (Length p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Length p) x :: Type Source #

Methods

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

(PP p x ~ s, P p x, Show s, Show (Unwrapped s), Wrapped s) => P (Unwrap p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Unwrap p) x :: Type Source #

Methods

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

P p x => P (Hide p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Hide p) x :: Type Source #

Methods

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

P p a => P (W p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (W p) a :: Type Source #

Methods

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

P (SecondT q) x => P (Second q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (Second q) x :: Type Source #

Methods

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

P (FirstT p) x => P (First p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (First p) x :: Type Source #

Methods

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

P (IsTheseT p) x => P (IsThese p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (IsThese p) x :: Type Source #

Methods

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

P (IsThatT p) x => P (IsThat p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (IsThat p) x :: Type Source #

Methods

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

P (IsThisT p) x => P (IsThis p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (IsThis p) x :: Type Source #

Methods

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

(ToStringC (PP p x), P p x) => P (ToString p :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (ToString p) x :: Type Source #

Methods

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

P (TrimBothT p) x => P (TrimBoth p :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (TrimBoth p) x :: Type Source #

Methods

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

P (TrimRT p) x => P (TrimR p :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (TrimR p) x :: Type Source #

Methods

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

P (TrimLT p) x => P (TrimL p :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (TrimL p) x :: Type Source #

Methods

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

(PP p x ~ ([String] -> String), P p x) => P (ReplaceFn3 p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceFn3 p) x :: Type Source #

Methods

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

(PP p x ~ (String -> String), P p x) => P (ReplaceFn2 p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceFn2 p) x :: Type Source #

Methods

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

(PP p x ~ (String -> [String] -> String), P p x) => P (ReplaceFn1 p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceFn1 p) x :: Type Source #

Methods

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

(Show (PP p x), P p x) => P (ShowP p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (ShowP p) x :: Type Source #

Methods

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

(PP p x ~ t a, P p x, Show (t a), Foldable t, a ~ Bool) => P (Ors p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Ors p) x :: Type Source #

Methods

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

(PP p x ~ t a, P p x, Show (t a), Foldable t, a ~ Bool) => P (Ands p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (Ands p) x :: Type Source #

Methods

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

P (OrdA' p p) x => P (OrdA p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

type PP (OrdA p) x :: Type Source #

Methods

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

(Show (PP p x), Num (PP p x), P p x) => P (Signum p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Signum p) x :: Type Source #

Methods

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

(Show (PP p x), Num (PP p x), P p x) => P (Abs p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Abs p) x :: Type Source #

Methods

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

(Show (PP p x), Num (PP p x), P p x) => P (Negate p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Negate p) x :: Type Source #

Methods

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

(a ~ PP p x, Show a, Real a, P p x) => P (ToRational p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (ToRational p) x :: Type Source #

Methods

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

(Show (PP t a), Monoid (PP t a)) => P (MEmptyT' t :: Type) a Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (MEmptyT' t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (MEmptyT' t) -> POpts -> a -> m (TT (PP (MEmptyT' t) a)) Source #

(PP p x ~ NonEmpty a, P p x, Show a, Semigroup a) => P (SConcat p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (SConcat p) x :: Type Source #

Methods

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

(PP p x ~ [a], P p x, Show a, Monoid a) => P (MConcat p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (MConcat p) x :: Type Source #

Methods

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

P (EmptyList' t :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (EmptyList' t) x :: Type Source #

Methods

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

P p x => P (Singleton p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Singleton p) x :: Type Source #

Methods

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

(Show s, Snoc s s (ConsT s) (ConsT s), PP p x ~ s, P p x) => P (Init p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Init p) x :: Type Source #

Methods

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

(Show (ConsT s), Show s, Snoc s s (ConsT s) (ConsT s), PP p x ~ s, P p x) => P (Last p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Last p) x :: Type Source #

Methods

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

(Show s, Cons s s (ConsT s) (ConsT s), PP p x ~ s, P p x) => P (Tail p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Tail p) x :: Type Source #

Methods

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

(Show (ConsT s), Show s, Cons s s (ConsT s) (ConsT s), PP p x ~ s, P p x) => P (Head p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Head p) x :: Type Source #

Methods

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

(PP p x ~ [a], P p x, Show a) => P (Ones p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Ones p) x :: Type Source #

Methods

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

(Show (t a), Foldable t, t a ~ PP p x, P p x) => P (Null' p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (Null' p) x :: Type Source #

Methods

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

(PP p x ~ t a, P p x, Show (t a), Foldable t, Show a) => P (ToList' p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (ToList' p) x :: Type Source #

Methods

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

(Show a, Show (t [a]), PP p x ~ t [a], P p x, Foldable t) => P (Concat p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (Concat p) x :: Type Source #

Methods

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

P (CatMaybesT q) x => P (CatMaybes q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (CatMaybes q) x :: Type Source #

Methods

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

(P p x, PP p x ~ Maybe a) => P (IsNothing p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (IsNothing p) x :: Type Source #

Methods

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

(P p x, PP p x ~ Maybe a) => P (IsJust p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (IsJust p) x :: Type Source #

Methods

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

(PP p x ~ a, P p x, Show a) => P (MkJust p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (MkJust p) x :: Type Source #

Methods

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

P (MkNothing' t :: Type) a Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (MkNothing' t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (MkNothing' t) -> POpts -> a -> m (TT (PP (MkNothing' t) a)) Source #

P (StderrT p) x => P (Stderr p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (Stderr p) x :: Type Source #

Methods

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

P (StdoutT p) x => P (Stdout p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (Stdout p) x :: Type Source #

Methods

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

(PP p x ~ String, P p x) => P (ReadEnv p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadEnv p) x :: Type Source #

Methods

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

(PP p x ~ String, P p x) => P (ReadDir p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadDir p) x :: Type Source #

Methods

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

P (DirExistsT p) x => P (DirExists p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (DirExists p) x :: Type Source #

Methods

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

P (FileExistsT p) x => P (FileExists p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (FileExists p) x :: Type Source #

Methods

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

(PP p x ~ String, P p x) => P (ReadFile p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (ReadFile p) x :: Type Source #

Methods

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

P (RDotExpandT ps q) a => P (RDot ps q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (RDot ps q) a :: Type Source #

Methods

eval :: MonadEval m => proxy (RDot ps q) -> POpts -> a -> m (TT (PP (RDot ps q) a)) Source #

P (DotExpandT ps q) a => P (Dot ps q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Dot ps q) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Dot ps q) -> POpts -> a -> m (TT (PP (Dot ps q) a)) Source #

P (ProxyT' t :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (ProxyT' t) x :: Type Source #

Methods

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

(PP p x ~ [Int], P p x) => P (Luhn p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Luhn p) x :: Type Source #

Methods

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

(PP p x ~ a, P p x, Show a, Integral a) => P (PrimeNext p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (PrimeNext p) x :: Type Source #

Methods

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

(PP p x ~ a, P p x, Show a, Integral a) => P (Prime p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Prime p) x :: Type Source #

Methods

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

(Show (PP p a), P p a) => P (Skip p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Skip p) a :: Type Source #

Methods

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

(Show a, Enum a, PP p x ~ a, P p x) => P (FromEnum p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (FromEnum p) x :: Type Source #

Methods

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

(Show a, Enum a, PP p x ~ a, P p x) => P (Pred p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (Pred p) x :: Type Source #

Methods

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

(Show a, Enum a, PP p x ~ a, P p x) => P (Succ p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (Succ p) x :: Type Source #

Methods

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

P (PredBT' q) x => P (PredB' q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (PredB' q) x :: Type Source #

Methods

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

P (SuccBT' q) x => P (SuccB' q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (SuccB' q) x :: Type Source #

Methods

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

([a] ~ x, GetLen ps, P (ParaImpl (LenT ps) ps) x) => P (Para ps :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (Para ps) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Para ps) -> POpts -> x -> m (TT (PP (Para ps) x)) Source #

P (ScanNAT q) x => P (ScanNA q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (ScanNA q) x :: Type Source #

Methods

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

(P p x, PP p x ~ Either a b) => P (IsRight p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (IsRight p) x :: Type Source #

Methods

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

(P p x, PP p x ~ Either a b) => P (IsLeft p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (IsLeft p) x :: Type Source #

Methods

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

(PP p x ~ UTCTime, P p x) => P (UTCTimeToPosix p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (UTCTimeToPosix p) x :: Type Source #

Methods

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

(PP p x ~ Rational, P p x) => P (PosixToUTCTime p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (PosixToUTCTime p) x :: Type Source #

Methods

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

(PP p x ~ TimeOfDay, P p x) => P (UnMkTime p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (UnMkTime p) x :: Type Source #

Methods

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

P (MkTimeT p) x => P (MkTime p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (MkTime p) x :: Type Source #

Methods

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

(P p x, Show (PP p x), ToTimeC (PP p x)) => P (ToTime p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ToTime p) x :: Type Source #

Methods

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

(P p x, Show (PP p x), ToDayC (PP p x)) => P (ToDay p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ToDay p) x :: Type Source #

Methods

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

(P p x, PP p x ~ Day) => P (ToWeekYear p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ToWeekYear p) x :: Type Source #

Methods

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

(P p x, PP p x ~ Day) => P (ToWeekDate p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ToWeekDate p) x :: Type Source #

Methods

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

P (MkDayExtraT p) x => P (MkDayExtra p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (MkDayExtra p) x :: Type Source #

Methods

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

(PP p x ~ Day, P p x) => P (UnMkDay p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (UnMkDay p) x :: Type Source #

Methods

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

P (MkDayT p) x => P (MkDay p :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (MkDay p) x :: Type Source #

Methods

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

(Show a, P p a, PP p a ~ Bool) => P (GuardSimple p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (GuardSimple p) a :: Type Source #

Methods

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

(Show (f a), Show (f (PP t (f a))), Functor f, Monoid (PP t (f a))) => P (MEmpty2' t :: Type) (f a) Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (MEmpty2' t) (f a) :: Type Source #

Methods

eval :: MonadEval m => proxy (MEmpty2' t) -> POpts -> f a -> m (TT (PP (MEmpty2' t) (f a))) Source #

(Show (f a), Show (f t), Coercible t a, Functor f) => P (Coerce2 t :: Type) (f a) Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Coerce2 t) (f a) :: Type Source #

Methods

eval :: MonadEval m => proxy (Coerce2 t) -> POpts -> f a -> m (TT (PP (Coerce2 t) (f a))) Source #

(Show (PP p a2), Show a2, P (p1 ': ps) a2, PP (p1 ': ps) a2 ~ [PP p1 a2], P p a2, PP p a2 ~ PP p1 a2) => P (p ': (p1 ': ps) :: [a1]) a2 Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p ': (p1 ': ps)) a2 :: Type Source #

Methods

eval :: MonadEval m => proxy (p ': (p1 ': ps)) -> POpts -> a2 -> m (TT (PP (p ': (p1 ': ps)) a2)) Source #

(Show (PP p a), Show a, P p a) => P (p ': ([] :: [k]) :: [k]) a Source #

runs each predicate in turn from the promoted list

>>> pz @'[1, 2, 3] 999
PresentT [1,2,3]
>>> pz @'[W 1, W 2, W 3, Id] 999
PresentT [1,2,3,999]
Instance details

Defined in Predicate.Core

Associated Types

type PP (p ': []) a :: Type Source #

Methods

eval :: MonadEval m => proxy (p ': []) -> POpts -> a -> m (TT (PP (p ': []) a)) Source #

(P p x, Show (PP p x), Show (t (PP p x)), Applicative t) => P (Pure t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Pure t p) x :: Type Source #

Methods

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

P (Fail (Hole t) p) x => P (Failt t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Failt t p) x :: Type Source #

Methods

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

P (WrapT t p) x => P (Wrap t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Wrap t p) x :: Type Source #

Methods

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

(KnownNat n, P p a) => P (Width n p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Width n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Width n p) -> POpts -> a -> m (TT (PP (Width n p) a)) Source #

P (MkThatT t p) x => P (MkThat t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (MkThat t p) x :: Type Source #

Methods

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

P (MkThisT t p) x => P (MkThis t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (MkThis t p) x :: Type Source #

Methods

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

P (FromStringPT t p) x => P (FromString t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (FromString t p) x :: Type Source #

Methods

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

(GetReplaceFnSub r, PP p x ~ String, P p x) => P (ReplaceFn r p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceFn r p) x :: Type Source #

Methods

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

P (ReadMaybeT t p) x => P (ReadMaybe t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (ReadMaybe t p) x :: Type Source #

Methods

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

P (ReadPT t p) x => P (ReadP t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (ReadP t p) x :: Type Source #

Methods

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

(PP p x ~ a, P p x, Show a, 2 <= n, n <= 36, KnownNat n, Integral a) => P (ShowBase n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (ShowBase n p) x :: Type Source #

Methods

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

P (FloorT t p) x => P (Floor t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Floor t p) x :: Type Source #

Methods

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

P (CeilingT t p) x => P (Ceiling t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Ceiling t p) x :: Type Source #

Methods

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

P (TruncateT t p) x => P (Truncate t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Truncate t p) x :: Type Source #

Methods

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

P (FromRationalT t p) x => P (FromRational t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (FromRational t p) x :: Type Source #

Methods

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

P (FromIntegralT t p) x => P (FromIntegral t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (FromIntegral t p) x :: Type Source #

Methods

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

P (FromIntegerT t p) x => P (FromInteger t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (FromInteger t p) x :: Type Source #

Methods

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

(P p x, PP p x ~ a, Show (t a), Show a, Alternative t) => P (EmptyT t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (EmptyT t p) x :: Type Source #

Methods

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

(GetBool pretty, ToJSON (PP p x), P p x) => P (EncodeJson pretty p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Json

Associated Types

type PP (EncodeJson pretty p) x :: Type Source #

Methods

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

P (ParseJsonFileT t p) x => P (ParseJsonFile t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Json

Associated Types

type PP (ParseJsonFile t p) x :: Type Source #

Methods

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

P (ParseJsonT t p) x => P (ParseJson t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Json

Associated Types

type PP (ParseJson t p) x :: Type Source #

Methods

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

P (FoldMapT t p) x => P (FoldMap t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (FoldMap t p) x :: Type Source #

Methods

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

P (IToListT t p) x => P (IToList t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (IToList t p) x :: Type Source #

Methods

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

P (WriteFileT s p) x => P (WriteFile s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (WriteFile s p) x :: Type Source #

Methods

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

P (WriteFileT' s p) x => P (WriteFile' s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (WriteFile' s p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (WriteFile' s p) -> POpts -> x -> m (TT (PP (WriteFile' s p) x)) Source #

P (AppendFileT s p) x => P (AppendFile s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.IO

Associated Types

type PP (AppendFile s p) x :: Type Source #

Methods

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

P (ToEnumBDefT t def) x => P (ToEnumBDef t def :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (ToEnumBDef t def) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ToEnumBDef t def) -> POpts -> x -> m (TT (PP (ToEnumBDef t def) x)) Source #

P (ToEnumT t p) x => P (ToEnum t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (ToEnum t p) x :: Type Source #

Methods

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

P (DoNT n p) a => P (DoN n p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (DoN n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (DoN n p) -> POpts -> a -> m (TT (PP (DoN n p) a)) Source #

P (RepeatT n p) a => P (Repeat n p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (Repeat n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Repeat n p) -> POpts -> a -> m (TT (PP (Repeat n p) a)) Source #

(P (ParaImpl (LenT (RepeatT n p)) (RepeatT n p)) x, GetLen (RepeatT n p), x ~ [a]) => P (ParaN n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (ParaN n p) x :: Type Source #

Methods

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

P (MkRightT t p) x => P (MkRight t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (MkRight t p) x :: Type Source #

Methods

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

P (MkLeftT t p) x => P (MkLeft t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (MkLeft t p) x :: Type Source #

Methods

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

([a] ~ x, GetLen ps, P (BoolsImpl (LenT ps) ps) x, PP (BoolsImpl (LenT ps) ps) x ~ Bool) => P (Bools ps :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (Bools ps) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Bools ps) -> POpts -> x -> m (TT (PP (Bools ps) x)) Source #

([a] ~ x, GetLen ps, P (GuardsImpl (LenT ps) ps) x) => P (Guards ps :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (Guards ps) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Guards ps) -> POpts -> x -> m (TT (PP (Guards ps) x)) Source #

(P def (Proxy a), PP def (Proxy a) ~ a, KnownNat n, Show a) => P (Ix n def :: Type) [a] Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (Ix n def) [a] :: Type Source #

Methods

eval :: MonadEval m => proxy (Ix n def) -> POpts -> [a] -> m (TT (PP (Ix n def) [a])) Source #

P (p q) a => P (q & p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (q & p) a :: Type Source #

Methods

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

P (p q) a => P (p $ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p $ q) a :: Type Source #

Methods

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

(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p ~> q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p ~> q) a :: Type Source #

Methods

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

(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p ||~ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p ||~ q) a :: Type Source #

Methods

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

(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p || q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p || q) a :: Type Source #

Methods

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

(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p &&~ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p &&~ q) a :: Type Source #

Methods

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

(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p && q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p && q) a :: Type Source #

Methods

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

(Show (PP p a), P p a, PP q x ~ f a, P q x, Show a, Show (f a), Foldable f) => P (Map p q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Map p q) x :: Type Source #

Methods

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

(P p a, PP p a ~ Bool, PP q x ~ f a, P q x, Show a, Foldable f) => P (Any p q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Any p q) x :: Type Source #

Methods

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

(P p a, PP p a ~ Bool, PP q x ~ f a, P q x, Show a, Foldable f) => P (All p q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (All p q) x :: Type Source #

Methods

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

P (BetweenT p q) x => P (p <..> q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p <..> q) x :: Type Source #

Methods

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

(P prt a, PP prt a ~ String) => P (Fail t prt :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Fail t prt) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Fail t prt) -> POpts -> a -> m (TT (PP (Fail t prt) a)) Source #

(Show (PP p x), P p x, Unwrapped (PP s x) ~ PP p x, Wrapped (PP s x), Show (PP s x)) => P (Wrap' s p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Wrap' s p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Wrap' s p) -> POpts -> x -> m (TT (PP (Wrap' s p) x)) Source #

P (LeftArrowsT p q) x => P (p << q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

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

Methods

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

(Show (PP p a), Show (PP q (PP p a)), P p a, P q (PP p a)) => P (p >> q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p >> q) a :: Type Source #

Methods

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

(P prt a, PP prt a ~ String, P p a) => P (MsgI prt p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (MsgI prt p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (MsgI prt p) -> POpts -> a -> m (TT (PP (MsgI prt p) a)) Source #

(P prt a, PP prt a ~ String, P p a) => P (Msg prt p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Msg prt p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Msg prt p) -> POpts -> a -> m (TT (PP (Msg prt p) a)) Source #

P (OrAT p q) x => P (p |+ q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (p |+ q) x :: Type Source #

Methods

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

P (AndAT p q) x => P (p &* q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (p &* q) x :: Type Source #

Methods

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

P (WAmpT p q) x => P (p &&& q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (p &&& q) x :: Type Source #

Methods

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

(PP p x ~ String, PP q x ~ These a b, P p x, P q x) => P (TheseFail p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (TheseFail p q) x :: Type Source #

Methods

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

(PP p x ~ String, PP q x ~ These a b, P p x, P q x) => P (ThatFail p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (ThatFail p q) x :: Type Source #

Methods

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

(PP p x ~ String, PP q x ~ These a b, P p x, P q x) => P (ThisFail p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (ThisFail p q) x :: Type Source #

Methods

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

(PP q x ~ These a b, PP p x ~ (a, b), P q x, P p x) => P (TheseDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (TheseDef p q) x :: Type Source #

Methods

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

(PP q x ~ These a b, PP p x ~ b, P q x, P p x) => P (ThatDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (ThatDef p q) x :: Type Source #

Methods

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

(PP q x ~ These a b, PP p x ~ a, P q x, P p x) => P (ThisDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (ThisDef p q) x :: Type Source #

Methods

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

(PP p a ~ [x], PP q a ~ [y], P p a, P q a, Show x, Show y) => P (ZipThese p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (ZipThese p q) a :: Type Source #

Methods

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

P (TheseIdT p q) x => P (TheseId p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (TheseId p q) x :: Type Source #

Methods

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

(P p a, P q a, Show (PP p a), Show (PP q a)) => P (MkThese p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (MkThese p q) a :: Type Source #

Methods

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

(Show (PP p x), P p x) => P (MkThat' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (MkThat' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MkThat' t p) -> POpts -> x -> m (TT (PP (MkThat' t p) x)) Source #

(Show (PP p x), P p x) => P (MkThis' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (MkThis' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MkThis' t p) -> POpts -> x -> m (TT (PP (MkThis' t p) x)) Source #

(P s a, PP s a ~ String, Show (PP t a), IsString (PP t a)) => P (FromString' t s :: Type) a Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (FromString' t s) a :: Type Source #

Methods

eval :: MonadEval m => proxy (FromString' t s) -> POpts -> a -> m (TT (PP (FromString' t s) a)) Source #

P (IsSuffixIT p q) x => P (IsSuffixI p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (IsSuffixI p q) x :: Type Source #

Methods

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

P (IsInfixIT p q) x => P (IsInfixI p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (IsInfixI p q) x :: Type Source #

Methods

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

P (IsPrefixIT p q) x => P (IsPrefixI p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (IsPrefixI p q) x :: Type Source #

Methods

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

P (IsSuffixT p q) x => P (IsSuffix p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (IsSuffix p q) x :: Type Source #

Methods

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

P (IsInfixT p q) x => P (IsInfix p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (IsInfix p q) x :: Type Source #

Methods

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

P (IsPrefixT p q) x => P (IsPrefix p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (IsPrefix p q) x :: Type Source #

Methods

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

P (StripRT p q) x => P (StripR p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (StripR p q) x :: Type Source #

Methods

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

P (StripLT p q) x => P (StripL p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.String

Associated Types

type PP (StripL p q) x :: Type Source #

Methods

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

P (ResplitT p q) x => P (Resplit p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (Resplit p q) x :: Type Source #

Methods

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

P (RescanRangesT p q) x => P (RescanRanges p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (RescanRanges p q) x :: Type Source #

Methods

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

P (RescanT p q) x => P (Rescan p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (Rescan p q) x :: Type Source #

Methods

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

P (ReT p q) x => P (Re p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (Re p q) x :: Type Source #

Methods

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

(PrintC bs, (b, bs) ~ InductTupleP y, InductTupleC y, PrintfArg b, PP s x ~ String, PP p x ~ y, P s x, P p x, CheckT (PP p x) ~ True) => P (PrintT s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (PrintT s p) x :: Type Source #

Methods

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

(PrintfArg (PP p x), Show (PP p x), PP s x ~ String, P s x, P p x) => P (PrintF s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (PrintF s p) x :: Type Source #

Methods

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

(P p x, PP p x ~ String, Typeable (PP t x), Show (PP t x), Read (PP t x)) => P (ReadMaybe' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (ReadMaybe' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReadMaybe' t p) -> POpts -> x -> m (TT (PP (ReadMaybe' t p) x)) Source #

(P p x, PP p x ~ String, Typeable (PP t x), Show (PP t x), Read (PP t x)) => P (ReadP' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (ReadP' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReadP' t p) -> POpts -> x -> m (TT (PP (ReadP' t p) x)) Source #

(PP p a ~ String, PP p a ~ PP q a, P p a, P q a) => P (p ===~ q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

P (Cmp CNe p q) x => P (p /= q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

P (Cmp CLe p q) x => P (p <= q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

P (Cmp CEq p q) x => P (p == q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

P (Cmp CGt p q) x => P (p > q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

P (ReadBaseT t n p) x => P (ReadBase t n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (ReadBase t n p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReadBase t n p) -> POpts -> x -> m (TT (PP (ReadBase t n p) x)) Source #

P (RemT p q) x => P (Rem p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Rem p q) x :: Type Source #

Methods

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

P (QuotT p q) x => P (Quot p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Quot p q) x :: Type Source #

Methods

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

(PP p a ~ PP q a, P p a, P q a, Show (PP p a), Integral (PP p a)) => P (QuotRem p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (QuotRem p q) a :: Type Source #

Methods

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

(PP p a ~ PP q a, P p a, P q a, Show (PP p a), Integral (PP p a)) => P (DivMod p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (DivMod p q) a :: Type Source #

Methods

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

(PP p a ~ PP q a, P p a, P q a, Show (PP p a), Integral (PP p a)) => P (Mod p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Mod p q) a :: Type Source #

Methods

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

(PP p a ~ PP q a, P p a, P q a, Show (PP p a), Integral (PP p a)) => P (Div p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Div p q) a :: Type Source #

Methods

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

P (NegateRatioT p q) x => P (p -% q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p -% q) x :: Type Source #

Methods

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

(Integral (PP p x), Integral (PP q x), Eq (PP q x), P p x, P q x, Show (PP p x), Show (PP q x)) => P (p % q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p % q) x :: Type Source #

Methods

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

(PP p a ~ PP q a, Eq (PP q a), P p a, P q a, Show (PP p a), Fractional (PP p a)) => P (p / q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p / q) a :: Type Source #

Methods

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

(PP p a ~ PP q a, P p a, P q a, Show (PP q a), Floating (PP q a), Ord (PP p a)) => P (LogBase p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (LogBase p q) a :: Type Source #

Methods

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

(PP p a ~ PP q a, P p a, P q a, Show (PP p a), Floating (PP p a), Ord (PP q a)) => P (p ** q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p ** q) a :: Type Source #

Methods

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

(P p a, P q a, Show (PP p a), Show (PP q a), Num (PP p a), Integral (PP q a)) => P (p ^ q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p ^ q) a :: Type Source #

Methods

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

P (MultT p q) x => P (p * q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p * q) x :: Type Source #

Methods

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

P (SubT p q) x => P (p - q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p - q) x :: Type Source #

Methods

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

P (AddT p q) x => P (p + q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (p + q) x :: Type Source #

Methods

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

(Show (PP p x), P p x, Show (PP t x), RealFrac (PP p x), Integral (PP t x)) => P (Floor' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Floor' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Floor' t p) -> POpts -> x -> m (TT (PP (Floor' t p) x)) Source #

(Show (PP p x), P p x, Show (PP t x), RealFrac (PP p x), Integral (PP t x)) => P (Ceiling' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Ceiling' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Ceiling' t p) -> POpts -> x -> m (TT (PP (Ceiling' t p) x)) Source #

(Show (PP p x), P p x, Show (PP t x), RealFrac (PP p x), Integral (PP t x)) => P (Truncate' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (Truncate' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Truncate' t p) -> POpts -> x -> m (TT (PP (Truncate' t p) x)) Source #

(P r a, PP r a ~ Rational, Show (PP t a), Fractional (PP t a)) => P (FromRational' t r :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (FromRational' t r) a :: Type Source #

Methods

eval :: MonadEval m => proxy (FromRational' t r) -> POpts -> a -> m (TT (PP (FromRational' t r) a)) Source #

(Num (PP t a), Integral (PP n a), P n a, Show (PP t a), Show (PP n a)) => P (FromIntegral' t n :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (FromIntegral' t n) a :: Type Source #

Methods

eval :: MonadEval m => proxy (FromIntegral' t n) -> POpts -> a -> m (TT (PP (FromIntegral' t n) a)) Source #

(Num (PP t a), Integral (PP n a), P n a, Show (PP t a)) => P (FromInteger' t n :: Type) a Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (FromInteger' t n) a :: Type Source #

Methods

eval :: MonadEval m => proxy (FromInteger' t n) -> POpts -> a -> m (TT (PP (FromInteger' t n) a)) Source #

(P n a, Integral (PP n a), Semigroup (PP p a), P p a, Show (PP p a)) => P (STimes n p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

type PP (STimes n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (STimes n p) -> POpts -> a -> m (TT (PP (STimes n p) a)) Source #

(Semigroup (PP p x), PP p x ~ PP q x, P p x, Show (PP q x), P q x) => P (p <> q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Monoid

Associated Types

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

Methods

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

(PP p a ~ [x], PP q a ~ [y], P p a, P q a, Show x, Show y) => P (Zip p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Zip p q) a :: Type Source #

Methods

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

P (SortOnDescT p q) x => P (SortOnDesc p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (SortOnDesc p q) x :: Type Source #

Methods

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

P (SortOnT p q) x => P (SortOn p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (SortOn p q) x :: Type Source #

Methods

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

(P p (a, a), P q x, Show a, PP q x ~ [a], PP p (a, a) ~ Ordering) => P (SortBy p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (SortBy p q) x :: Type Source #

Methods

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

P (RemoveT p q) x => P (Remove p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Remove p q) x :: Type Source #

Methods

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

P (KeepT p q) x => P (Keep p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Keep p q) x :: Type Source #

Methods

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

(PP p a ~ [b], P n a, P p a, Show b, Integral (PP n a)) => P (ChunksOf n p :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (ChunksOf n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (ChunksOf n p) -> POpts -> a -> m (TT (PP (ChunksOf n p) a)) Source #

P (DropT n p) x => P (Drop n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Drop n p) x :: Type Source #

Methods

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

P (TakeT n p) x => P (Take n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Take n p) x :: Type Source #

Methods

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

(PP p a ~ [b], P n a, P p a, Show b, Integral (PP n a)) => P (SplitAt n p :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (SplitAt n p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (SplitAt n p) -> POpts -> a -> m (TT (PP (SplitAt n p) a)) Source #

(P ns x, P p x, PP p x ~ [a], Show n, Show a, PP ns x ~ [n], Integral n) => P (SplitAts ns p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (SplitAts ns p) x :: Type Source #

Methods

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

([PP p a] ~ PP q a, P p a, P q a, Show (PP p a), Eq (PP p a)) => P (Elem p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Elem p q) a :: Type Source #

Methods

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

(PP p x ~ [a], PP q x ~ PP p x, P p x, P q x, Show a) => P (Intercalate p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Intercalate p q) x :: Type Source #

Methods

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

P (SpanT p q) x => P (Span p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Span p q) x :: Type Source #

Methods

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

(P p x, PP q a ~ [x], PP p x ~ Bool, P q a) => P (Break p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Break p q) a :: Type Source #

Methods

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

P (FilterT p q) x => P (Filter p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Filter p q) x :: Type Source #

Methods

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

(Show x, PP q a ~ [x], PP p (x, x) ~ Bool, P p (x, x), P q a) => P (GroupBy p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (GroupBy p q) a :: Type Source #

Methods

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

(P p x, Show x, PP q a ~ [x], PP p x ~ Bool, P q a) => P (Partition p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Partition p q) a :: Type Source #

Methods

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

P (RotateT n p) x => P (Rotate n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (Rotate n p) x :: Type Source #

Methods

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

(P p x, P q x, Show (PP q x), Show (PP p x), Snoc (PP p x) (PP p x) (PP q x) (PP q x)) => P (p +: q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (p +: q) x :: Type Source #

Methods

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

(P p x, P q x, Show (PP p x), Show (PP q x), Cons (PP q x) (PP q x) (PP p x) (PP p x)) => P (p :+ q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (p :+ q) x :: Type Source #

Methods

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

(P p x, P q x, Show (PP p x), PP p x ~ [a], PP q x ~ [a]) => P (p ++ q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (p ++ q) x :: Type Source #

Methods

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

(P p x, PP p x ~ String, Typeable (PP t x), Show (PP t x), FromJSON (PP t x)) => P (ParseJsonFile' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Json

Associated Types

type PP (ParseJsonFile' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ParseJsonFile' t p) -> POpts -> x -> m (TT (PP (ParseJsonFile' t p) x)) Source #

(P p x, PP p x ~ ByteString, Typeable (PP t x), Show (PP t x), FromJSON (PP t x)) => P (ParseJson' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Json

Associated Types

type PP (ParseJson' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ParseJson' t p) -> POpts -> x -> m (TT (PP (ParseJson' t p) x)) Source #

(Show a, Show (t a), PP p x ~ t a, P p x, Integral (PP n x), P n x, Foldable t) => P (Cycle n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (Cycle n p) x :: Type Source #

Methods

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

P (ConcatMapT p q) x => P (ConcatMap p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (ConcatMap p q) x :: Type Source #

Methods

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

(Show x, P p x, Typeable (PP t (PP p x)), Show (PP t (PP p x)), FoldableWithIndex (PP t (PP p x)) f, PP p x ~ f a, Show a) => P (IToList' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Foldable

Associated Types

type PP (IToList' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (IToList' t p) -> POpts -> x -> m (TT (PP (IToList' t p) x)) Source #

(PP p x ~ String, PP q x ~ Maybe a, P p x, P q x) => P (JustFail p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (JustFail p q) x :: Type Source #

Methods

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

(PP p x ~ a, PP q x ~ Maybe a, P p x, P q x) => P (JustDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (JustDef p q) x :: Type Source #

Methods

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

(Show (PP p a), P b a, P p a, PP b a ~ Bool) => P (MaybeBool b p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (MaybeBool b p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (MaybeBool b p) -> POpts -> a -> m (TT (PP (MaybeBool b p) a)) Source #

P (MapMaybeT p q) x => P (MapMaybe p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (MapMaybe p q) x :: Type Source #

Methods

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

P (BangBangQT p q) a => P (p !!? q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (p !!? q) a :: Type Source #

Methods

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

(P q a, P p a, Show (PP p a), Ixed (PP p a), PP q a ~ Index (PP p a), Show (Index (PP p a)), Show (IxValue (PP p a))) => P (Lookup p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (Lookup p q) a :: Type Source #

Methods

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

P (BangBangT p q) a => P (p !! q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

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

Methods

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

P p a => P (K p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (K p q) a :: Type Source #

Methods

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

P (CatchT' p s) x => P (Catch' p s :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Catch' p s) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Catch' p s) -> POpts -> x -> m (TT (PP (Catch' p s) x)) Source #

(P p x, P q ((String, x), Proxy (PP p x)), PP p x ~ PP q ((String, x), Proxy (PP p x))) => P (Catch p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Catch p q) x :: Type Source #

Methods

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

P (InitFailT msg q) x => P (InitFail msg q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (InitFail msg q) x :: Type Source #

Methods

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

P (InitDefT p q) x => P (InitDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (InitDef p q) x :: Type Source #

Methods

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

P (LastFailT msg q) x => P (LastFail msg q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (LastFail msg q) x :: Type Source #

Methods

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

P (LastDefT p q) x => P (LastDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (LastDef p q) x :: Type Source #

Methods

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

P (TailFailT msg q) x => P (TailFail msg q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (TailFail msg q) x :: Type Source #

Methods

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

P (TailDefT p q) x => P (TailDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (TailDef p q) x :: Type Source #

Methods

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

P (HeadFailT msg q) x => P (HeadFail msg q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (HeadFail msg q) x :: Type Source #

Methods

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

P (HeadDefT p q) x => P (HeadDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (HeadDef p q) x :: Type Source #

Methods

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

P (SkipBothT p q) x => P (p >|> q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

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

Methods

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

P (SkipRT p q) x => P (p >| q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

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

Methods

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

P (SkipLT p q) x => P (p |> q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

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

Methods

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

P (TraverseT p q) x => P (Traverse p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (Traverse p q) x :: Type Source #

Methods

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

(P p x, P q x, PP p x ~ (a -> b), FnT (PP p x) ~ b, PP q x ~ a, Show a, Show b) => P (q $& p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (q $& p) x :: Type Source #

Methods

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

(P p x, P q x, PP p x ~ (a -> b), FnT (PP p x) ~ b, PP q x ~ a, Show a, Show b) => P (p $$ q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (p $$ q) x :: Type Source #

Methods

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

(P p x, P q x, Show (t b), Alternative t, t b ~ PP p x, PP q x ~ t b) => P (p <|> q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

type PP (p <|> q) x :: Type Source #

Methods

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

P (ArrowRT p q) x => P (p *> q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

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

Methods

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

(Show (t c), P p x, P q x, Show (t b), Applicative t, t b ~ PP p x, PP q x ~ t c) => P (p <* q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

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

Methods

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

(P p x, P q x, Show (PP p x), Functor t, PP q x ~ t c, ApplyConstT (PP q x) (PP p x) ~ t (PP p x)) => P (p <$ q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Extra

Associated Types

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

Methods

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

P (EnumFromToT p q) x => P (p ... q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (p ... q) x :: Type Source #

Methods

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

(P p x, P q x, PP p x ~ a, Show a, PP q x ~ a, Enum a) => P (EnumFromTo p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (EnumFromTo p q) x :: Type Source #

Methods

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

(P def (Proxy (PP t a)), PP def (Proxy (PP t a)) ~ PP t a, Show a, Show (PP t a), Bounded (PP t a), Enum (PP t a), Integral a) => P (ToEnumBDef' t def :: Type) a Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (ToEnumBDef' t def) a :: Type Source #

Methods

eval :: MonadEval m => proxy (ToEnumBDef' t def) -> POpts -> a -> m (TT (PP (ToEnumBDef' t def) a)) Source #

(PP p x ~ a, P p x, Show a, Enum (PP t x), Show (PP t x), Integral a) => P (ToEnum' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (ToEnum' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ToEnum' t p) -> POpts -> x -> m (TT (PP (ToEnum' t p) x)) Source #

(PP q x ~ a, P q x, P p (Proxy a), PP p (Proxy a) ~ a, Show a, Eq a, Bounded a, Enum a) => P (PredB p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (PredB p q) x :: Type Source #

Methods

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

(Show a, Enum a, Integral (PP n x), P n x, PP p x ~ a, P p x) => P (SuccN n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (SuccN n p) x :: Type Source #

Methods

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

(PP q x ~ a, P q x, P p (Proxy a), PP p (Proxy a) ~ a, Show a, Eq a, Bounded a, Enum a) => P (SuccB p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (SuccB p q) x :: Type Source #

Methods

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

P (IterateWhileT p f) x => P (IterateWhile p f :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (IterateWhile p f) x :: Type Source #

Methods

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

P (IterateUntilT p f) x => P (IterateUntil p f :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (IterateUntil p f) x :: Type Source #

Methods

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

(PP q a ~ s, PP p s ~ Maybe (b, s), P q a, P p s, Show s, Show b) => P (Unfoldr p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (Unfoldr p q) a :: Type Source #

Methods

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

(PP p (a, x) ~ String, PP q x ~ Either a b, P p (a, x), P q x) => P (RightFail p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (RightFail p q) x :: Type Source #

Methods

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

(PP p (b, x) ~ String, PP q x ~ Either a b, P p (b, x), P q x) => P (LeftFail p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (LeftFail p q) x :: Type Source #

Methods

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

(PP q x ~ Either a b, PP p (a, x) ~ b, P q x, P p (a, x)) => P (RightDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (RightDef p q) x :: Type Source #

Methods

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

(PP q x ~ Either a b, PP p (b, x) ~ a, P q x, P p (b, x)) => P (LeftDef p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (LeftDef p q) x :: Type Source #

Methods

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

(Show (PP p x), P p x) => P (MkRight' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (MkRight' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MkRight' t p) -> POpts -> x -> m (TT (PP (MkRight' t p) x)) Source #

(Show (PP p x), P p x) => P (MkLeft' t p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (MkLeft' t p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (MkLeft' t p) -> POpts -> x -> m (TT (PP (MkLeft' t p) x)) Source #

(PP p x ~ String, FormatTime (PP q x), P p x, Show (PP q x), P q x) => P (FormatTimeP p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (FormatTimeP p q) x :: Type Source #

Methods

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

P (ExitWhenT prt p) x => P (ExitWhen prt p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (ExitWhen prt p) x :: Type Source #

Methods

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

(Show a, P prt a, PP prt a ~ String, P p a, PP p a ~ Bool) => P (Guard prt p :: Type) a Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (Guard prt p) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Guard prt p) -> POpts -> a -> m (TT (PP (Guard prt p) a)) Source #

(PP (Bools (ToGuardsT prt ps)) x ~ Bool, P (BoolsQuickT prt ps) x) => P (BoolsQuick prt ps :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (BoolsQuick prt ps) x :: Type Source #

Methods

eval :: MonadEval m => proxy (BoolsQuick prt ps) -> POpts -> x -> m (TT (PP (BoolsQuick prt ps) x)) Source #

P (GuardsQuickT prt ps) x => P (GuardsQuick prt ps :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (GuardsQuick prt ps) x :: Type Source #

Methods

eval :: MonadEval m => proxy (GuardsQuick prt ps) -> POpts -> x -> m (TT (PP (GuardsQuick prt ps) x)) Source #

(P q a, Show a, Show (PP q a), PP p (Proxy (PP q a)) ~ PP q a, P p (Proxy (PP q a))) => P (MaybeIn p q :: Type) (Maybe a) Source # 
Instance details

Defined in Predicate.Data.Maybe

Associated Types

type PP (MaybeIn p q) (Maybe a) :: Type Source #

Methods

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

(Show (PP p a), Show (PP q b), P p a, P q b, Show a, Show b) => P (p *** q :: Type) (a, b) Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (p *** q) (a, b) :: Type Source #

Methods

eval :: MonadEval m => proxy (p *** q) -> POpts -> (a, b) -> m (TT (PP (p *** q) (a, b))) Source #

(Show (PP p a), Show (PP q b), P p a, P q b, Show a, Show b) => P (p +++ q :: Type) (Either a b) Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (p +++ q) (Either a b) :: Type Source #

Methods

eval :: MonadEval m => proxy (p +++ q) -> POpts -> Either a b -> m (TT (PP (p +++ q) (Either a b))) Source #

(Show (PP p a), P p a, P q b, PP p a ~ PP q b, Show a, Show b) => P (p ||| q :: Type) (Either a b) Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (p ||| q) (Either a b) :: Type Source #

Methods

eval :: MonadEval m => proxy (p ||| q) -> POpts -> Either a b -> m (TT (PP (p ||| q) (Either a b))) Source #

(GetROpts rs, PP p x ~ String, PP q x ~ String, P p x, P q x) => P (Resplit' rs p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (Resplit' rs p q) x :: Type Source #

Methods

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

(GetROpts rs, PP p x ~ String, PP q x ~ String, P p x, P q x) => P (RescanRanges' rs p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (RescanRanges' rs p q) x :: Type Source #

Methods

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

(GetROpts rs, PP p x ~ String, PP q x ~ String, P p x, P q x) => P (Rescan' rs p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (Rescan' rs p q) x :: Type Source #

Methods

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

(GetROpts rs, PP p x ~ String, PP q x ~ String, P p x, P q x) => P (Re' rs p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (Re' rs p q) x :: Type Source #

Methods

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

(KnownNat n, PrintC bs, (b, bs) ~ InductListP n a, InductListC n a, PrintfArg b, PP s x ~ String, PP p x ~ [a], P s x, P p x) => P (PrintL n s p :: Type) x Source # 
Instance details

Defined in Predicate.Data.ReadShow

Associated Types

type PP (PrintL n s p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (PrintL n s p) -> POpts -> x -> m (TT (PP (PrintL n s p) x)) Source #

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

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

Defined in Predicate.Data.Ordering

Associated Types

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

Methods

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

(Typeable (PP t x), ZwischenT 2 36 n, Show (PP t x), Num (PP t x), KnownNat n, PP p x ~ String, P p x) => P (ReadBase' t n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Numeric

Associated Types

type PP (ReadBase' t n p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReadBase' t n p) -> POpts -> x -> m (TT (PP (ReadBase' t n p) x)) Source #

(GetBool pretty, PP p x ~ String, P p x, ToJSON (PP q x), P q x) => P (EncodeJsonFile pretty p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Json

Associated Types

type PP (EncodeJsonFile pretty p q) x :: Type Source #

Methods

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

P (ParseTimesT t p q) x => P (ParseTimes t p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ParseTimes t p q) x :: Type Source #

Methods

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

P (ParseTimePT t p q) x => P (ParseTimeP t p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ParseTimeP t p q) x :: Type Source #

Methods

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

(x ~ [a], P (GuardsNT prt n p) x) => P (GuardsN prt n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (GuardsN prt n p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (GuardsN prt n p) -> POpts -> x -> m (TT (PP (GuardsN prt n p) x)) Source #

P (GuardsDetailT prt ps) x => P (GuardsDetail prt ps :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (GuardsDetail prt ps) x :: Type Source #

Methods

eval :: MonadEval m => proxy (GuardsDetail prt ps) -> POpts -> x -> m (TT (PP (GuardsDetail prt ps) x)) Source #

(x ~ [a], P (BoolsNT prt n p) x) => P (BoolsN prt n p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (BoolsN prt n p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (BoolsN prt n p) -> POpts -> x -> m (TT (PP (BoolsN prt n p) x)) Source #

(Ord (PP p x), Show (PP p x), PP r x ~ PP p x, PP r x ~ PP q x, P p x, P q x, P r x) => P (Between p q r :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Between p q r) x :: Type Source #

Methods

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

(PP r x ~ (a, b), PP p a ~ Bool, PP q b ~ Bool, P p a, P q b, P r x) => P (OrA p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (OrA p q r) x :: Type Source #

Methods

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

(PP r x ~ (a, b), PP p a ~ Bool, PP q b ~ Bool, P p a, P q b, P r x) => P (AndA p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Tuple

Associated Types

type PP (AndA p q r) x :: Type Source #

Methods

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

P (ReplaceOneT p q r) x => P (ReplaceOne p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceOne p q r) x :: Type Source #

Methods

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

P (ReplaceAllT p q r) x => P (ReplaceAll p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceAll p q r) x :: Type Source #

Methods

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

(PP r a ~ y, P r a, PP p a ~ [x], PP q a ~ [y], P p a, P q a, Show x, Show y) => P (ZipR r p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (ZipR r p q) a :: Type Source #

Methods

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

(PP l a ~ x, P l a, PP p a ~ [x], PP q a ~ [y], P p a, P q a, Show x, Show y) => P (ZipL l p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (ZipL l p q) a :: Type Source #

Methods

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

(PP q a ~ [x], PP r a ~ [y], P q a, P r a, P p (x, y), Show x, Show y, Show (PP p (x, y))) => P (ZipWith p q r :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (ZipWith p q r) a :: Type Source #

Methods

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

P (PadRT n p q) x => P (PadR n p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (PadR n p q) x :: Type Source #

Methods

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

P (PadLT n p q) x => P (PadL n p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (PadL n p q) x :: Type Source #

Methods

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

(P p x, Ord t, Show x, Show t, PP q a ~ [x], PP p x ~ t, P q a) => P (PartitionBy t p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.List

Associated Types

type PP (PartitionBy t p q) a :: Type Source #

Methods

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

(P q a, P p a, Show (PP p a), Ixed (PP p a), PP q a ~ Index (PP p a), Show (Index (PP p a)), Show (IxValue (PP p a)), P r (Proxy (IxValue (PP p a))), PP r (Proxy (IxValue (PP p a))) ~ IxValue (PP p a)) => P (IxL p q r :: Type) a Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (IxL p q r) a :: Type Source #

Methods

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

P (LookupFailT msg v w) x => P (LookupFail msg v w :: Type) x Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (LookupFail msg v w) x :: Type Source #

Methods

eval :: MonadEval m => proxy (LookupFail msg v w) -> POpts -> x -> m (TT (PP (LookupFail msg v w) x)) Source #

P (LookupDefT v w p) x => P (LookupDef v w p :: Type) x Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (LookupDef v w p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (LookupDef v w p) -> POpts -> x -> m (TT (PP (LookupDef v w p) x)) Source #

(P p x, P q x, P r x, PP p x ~ a, Show a, PP q x ~ a, PP r x ~ a, Enum a) => P (EnumFromThenTo p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Enum

Associated Types

type PP (EnumFromThenTo p q r) x :: Type Source #

Methods

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

P (IterateNUntilT n p f) x => P (IterateNUntil n p f :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (IterateNUntil n p f) x :: Type Source #

Methods

eval :: MonadEval m => proxy (IterateNUntil n p f) -> POpts -> x -> m (TT (PP (IterateNUntil n p f) x)) Source #

P (IterateNWhileT n p f) x => P (IterateNWhile n p f :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (IterateNWhile n p f) x :: Type Source #

Methods

eval :: MonadEval m => proxy (IterateNWhile n p f) -> POpts -> x -> m (TT (PP (IterateNWhile n p f) x)) Source #

P (FoldLT p q r) x => P (Foldl p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (Foldl p q r) x :: Type Source #

Methods

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

P (FoldNT n p q) x => P (FoldN n p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (FoldN n p q) x :: Type Source #

Methods

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

P (ScanNT n p q) x => P (ScanN n p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (ScanN n p q) x :: Type Source #

Methods

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

(PP p (b, a) ~ b, PP q x ~ b, PP r x ~ [a], P p (b, a), P q x, P r x, Show b, Show a) => P (Scanl p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Iterator

Associated Types

type PP (Scanl p q r) x :: Type Source #

Methods

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

(Show (PP p a), P p a, Show (PP q a), P q a, P b a, PP b a ~ Bool) => P (EitherBool b p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.Either

Associated Types

type PP (EitherBool b p q) a :: Type Source #

Methods

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

(P p x, P q x, P r x, PP p x ~ Int, PP q x ~ Int, PP r x ~ Rational) => P (MkTime' p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (MkTime' p q r) x :: Type Source #

Methods

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

(P p x, P q x, P r x, PP p x ~ Int, PP q x ~ Int, PP r x ~ Int) => P (MkDayExtra' p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (MkDayExtra' p q r) x :: Type Source #

Methods

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

(P p x, P q x, P r x, PP p x ~ Int, PP q x ~ Int, PP r x ~ Int) => P (MkDay' p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (MkDay' p q r) x :: Type Source #

Methods

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

(ParseTime (PP t a), Typeable (PP t a), Show (PP t a), P p a, P q a, PP p a ~ [String], PP q a ~ String) => P (ParseTimes' t p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ParseTimes' t p q) a :: Type Source #

Methods

eval :: MonadEval m => proxy (ParseTimes' t p q) -> POpts -> a -> m (TT (PP (ParseTimes' t p q) a)) Source #

(ParseTime (PP t a), Typeable (PP t a), Show (PP t a), P p a, P q a, PP p a ~ String, PP q a ~ String) => P (ParseTimeP' t p q :: Type) a Source # 
Instance details

Defined in Predicate.Data.DateTime

Associated Types

type PP (ParseTimeP' t p q) a :: Type Source #

Methods

eval :: MonadEval m => proxy (ParseTimeP' t p q) -> POpts -> a -> m (TT (PP (ParseTimeP' t p q) a)) Source #

P (CaseT' ps qs r) x => P (Case' ps qs r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (Case' ps qs r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Case' ps qs r) -> POpts -> x -> m (TT (PP (Case' ps qs r) x)) Source #

(Show (PP r a), P p a, PP p a ~ Bool, P q a, P r a, PP q a ~ PP r a) => P (If p q r :: Type) a Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (If p q r) a :: Type Source #

Methods

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

(Show a, Show b, Show (PP p a), P p a, P q b, P r (a, b), PP p a ~ PP q b, PP p a ~ PP r (a, b), PP q b ~ PP r (a, b)) => P (TheseIn p q r :: Type) (These a b) Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (TheseIn p q r) (These a b) :: Type Source #

Methods

eval :: MonadEval m => proxy (TheseIn p q r) -> POpts -> These a b -> m (TT (PP (TheseIn p q r) (These a b))) Source #

P (ReplaceOneStringT o p q r) x => P (ReplaceOneString o p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceOneString o p q r) x :: Type Source #

Methods

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

P (ReplaceOneT' rs p q r) x => P (ReplaceOne' rs p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceOne' rs p q r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReplaceOne' rs p q r) -> POpts -> x -> m (TT (PP (ReplaceOne' rs p q r) x)) Source #

P (ReplaceAllT' rs p q r) x => P (ReplaceAll' rs p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceAll' rs p q r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReplaceAll' rs p q r) -> POpts -> x -> m (TT (PP (ReplaceAll' rs p q r) x)) Source #

(P s x, P p (x, a), P q (x, b), P r (x, (a, b)), PP s x ~ These a b, PP p (x, a) ~ c, PP q (x, b) ~ c, PP r (x, (a, b)) ~ c) => P (TheseX p q r s :: Type) x Source # 
Instance details

Defined in Predicate.Data.These

Associated Types

type PP (TheseX p q r s) x :: Type Source #

Methods

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

P (ReplaceOneStringT' rs o p q r) x => P (ReplaceOneString' rs o p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceOneString' rs o p q r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReplaceOneString' rs o p q r) -> POpts -> x -> m (TT (PP (ReplaceOneString' rs o p q r) x)) Source #

P (ReplaceAllStringT o p q r) x => P (ReplaceAllString o p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceAllString o p q r) x :: Type Source #

Methods

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

P (ReplaceAllStringT' rs o p q r) x => P (ReplaceAllString' rs o p q r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Regex

Associated Types

type PP (ReplaceAllString' rs o p q r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (ReplaceAllString' rs o p q r) -> POpts -> x -> m (TT (PP (ReplaceAllString' rs o p q r) x)) Source #

P (LookupFailT' msg v w q) x => P (LookupFail' msg v w q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (LookupFail' msg v w q) x :: Type Source #

Methods

eval :: MonadEval m => proxy (LookupFail' msg v w q) -> POpts -> x -> m (TT (PP (LookupFail' msg v w q) x)) Source #

P (LookupDefT' v w p q) x => P (LookupDef' v w p q :: Type) x Source # 
Instance details

Defined in Predicate.Data.Index

Associated Types

type PP (LookupDef' v w p q) x :: Type Source #

Methods

eval :: MonadEval m => proxy (LookupDef' v w p q) -> POpts -> x -> m (TT (PP (LookupDef' v w p q) x)) Source #

P (CaseT'' s ps qs r) x => P (Case'' s ps qs r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (Case'' s ps qs r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Case'' s ps qs r) -> POpts -> x -> m (TT (PP (Case'' s ps qs r) x)) Source #

(FailUnlessT (LenT ps == LenT qs) (((Text "lengths are not the same " :<>: ShowType (LenT ps)) :<>: Text " vs ") :<>: ShowType (LenT qs)), P (CaseImplT e ps qs r) x) => P (Case e ps qs r :: Type) x Source # 
Instance details

Defined in Predicate.Data.Condition

Associated Types

type PP (Case e ps qs r) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Case e ps qs r) -> POpts -> x -> m (TT (PP (Case e ps qs r) x)) Source #

Show a => P (Proxy :: Proxy t) a Source #

converts the value to the corresponding Proxy

>>> pz @'Proxy 'x'
PresentT Proxy
Instance details

Defined in Predicate.Core

Associated Types

type PP Proxy a :: Type Source #

Methods

eval :: MonadEval m => proxy Proxy0 -> POpts -> a -> m (TT (PP Proxy0 a)) Source #

(PP p x ~ Either a2 b2, P p x) => P (Right p :: Either a1 b1) x Source #

extracts the 'b' from type level 'Either a b' if the value exists

>>> pl @('Right Id) (Right 123)
Present 123 (Right)
PresentT 123
>>> pz @('Right Id >> Snd Id) (Right ('x',123))
PresentT 123
>>> pz @('Right Id) (Left "aaa")
FailT "'Right found Left"
>>> pl @('Right Id) (Left 123)
Error 'Right found Left
FailT "'Right found Left"
Instance details

Defined in Predicate.Core

Associated Types

type PP (Right p) x :: Type Source #

Methods

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

(PP p x ~ Either a2 b2, P p x) => P (Left p :: Either a1 b1) x Source #

extracts the 'a' from type level 'Either a b' if the value exists

>>> pz @('Left Id) (Left 123)
PresentT 123
>>> pz @('Left (Snd Id)) ('x', Left 123)
PresentT 123
>>> pz @('Left Id) (Right "aaa")
FailT "'Left found Right"
>>> pl @('Left Id) (Left 123)
Present 123 (Left)
PresentT 123
>>> pl @('Left Id) (Right 123)
Error 'Left found Right
FailT "'Left found Right"
Instance details

Defined in Predicate.Core

Associated Types

type PP (Left p) x :: Type Source #

Methods

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

(PP p x ~ These a2 b2, P p x) => P (That p :: These a1 b1) x Source #

extracts the 'b' from type level 'These a b' if the value exists

>>> pz @('That Id) (That 123)
PresentT 123
>>> pz @('That Id) (This "aaa")
FailT "'That found This"
>>> pz @('That Id) (These 44 "aaa")
FailT "'That found These"
Instance details

Defined in Predicate.Core

Associated Types

type PP (That p) x :: Type Source #

Methods

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

(PP p x ~ These a2 b2, P p x) => P (This p :: These a1 b1) x Source #

extracts the 'a' from type level 'These a b' if the value exists

>>> pl @('This Id) (This 12)
Present 12 (This)
PresentT 12
>>> pz @('This Id) (That "aaa")
FailT "'This found That"
>>> pz @('This Id) (These 999 "aaa")
FailT "'This found These"
>>> pl @('This Id) (That 12)
Error 'This found That
FailT "'This found That"
Instance details

Defined in Predicate.Core

Associated Types

type PP (This p) x :: Type Source #

Methods

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

(P p a, P q a, Show (PP p a), Show (PP q a)) => P ((,) p q :: (k2, k1)) a Source #

run the predicates in a promoted 2-tuple; similar to &&&

>>> pz @'(Id, 4) "hello"
PresentT ("hello",4)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q) a :: Type Source #

Methods

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

(Show a2, Show b2, P p a2, P q b2, Show (PP p a2), Show (PP q b2)) => P (These p q :: These a1 b1) (These a2 b2) Source #

extracts the (a,b) from type level 'These a b' if the value exists

>>> pz @('These Id Id) (These 123 "abc")
PresentT (123,"abc")
>>> pz @('These Id 5) (These 123 "abcde")
PresentT (123,5)
>>> pz @('These Id Id) (This "aaa")
FailT "'These found This"
>>> pz @('These Id Id) (That "aaa")
FailT "'These found That"
Instance details

Defined in Predicate.Core

Associated Types

type PP (These p q) (These a2 b2) :: Type Source #

Methods

eval :: MonadEval m => proxy (These0 p q) -> POpts -> These a2 b2 -> m (TT (PP (These0 p q) (These a2 b2))) Source #

(P p a, P q a, P r a) => P ((,,) p q r :: (k3, k2, k1)) a Source #

run the predicates in a promoted 3-tuple

>>> pz @'(4, Id, "goodbye") "hello"
PresentT (4,"hello","goodbye")
>>> pan @'( 'True, 'False, 123) True
P '(,,)
|
+- True 'True
|
+- False 'False
|
`- P '123
PresentT (True,False,123)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q, r) a :: Type Source #

Methods

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

(P p a, P q a, P r a, P s a) => P ((,,,) p q r s :: (k4, k3, k2, k1)) a Source #

run the predicates in a promoted 4-tuple

>>> pz @'(4, Id, "inj", 999) "hello"
PresentT (4,"hello","inj",999)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q, r, s) a :: Type Source #

Methods

eval :: MonadEval m => proxy (p, q, r, s) -> POpts -> a -> m (TT (PP (p, q, r, s) a)) Source #

(P p a, P q a, P r a, P s a, P t a) => P ((,,,,) p q r s t :: (k5, k4, k3, k2, k1)) a Source #

run the predicates in a promoted 5-tuple

>>> pz @'(4, Id, "inj", 999, 'LT) "hello"
PresentT (4,"hello","inj",999,LT)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q, r, s, t) a :: Type Source #

Methods

eval :: MonadEval m => proxy (p, q, r, s, t) -> POpts -> a -> m (TT (PP (p, q, r, s, t) a)) Source #

(P p a, P q a, P r a, P s a, P t a, P u a) => P ((,,,,,) p q r s t u :: (k6, k5, k4, k3, k2, k1)) a Source #

run the predicates in a promoted 6-tuple

>>> pz @'(4, Id, "inj", 999, 'LT, 1) "hello"
PresentT (4,"hello","inj",999,LT,1)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q, r, s, t, u) a :: Type Source #

Methods

eval :: MonadEval m => proxy (p, q, r, s, t, u) -> POpts -> a -> m (TT (PP (p, q, r, s, t, u) a)) Source #

(P p a, P q a, P r a, P s a, P t a, P u a, P v a) => P ((,,,,,,) p q r s t u v :: (k7, k6, k5, k4, k3, k2, k1)) a Source #

run the predicates in a promoted 7-tuple

>>> pz @'(4, Id, "inj", 999, 'LT, 1, 2) "hello"
PresentT (4,"hello","inj",999,LT,1,2)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q, r, s, t, u, v) a :: Type Source #

Methods

eval :: MonadEval m => proxy (p, q, r, s, t, u, v) -> POpts -> a -> m (TT (PP (p, q, r, s, t, u, v) a)) Source #

(P p a, P q a, P r a, P s a, P t a, P u a, P v a, P w a) => P ((,,,,,,,) p q r s t u v w :: (k8, k7, k6, k5, k4, k3, k2, k1)) a Source #

run the predicates in a promoted 8-tuple

>>> pz @'(4, Id, "inj", 999, 'LT, 1, 2, 3) "hello"
PresentT (4,"hello","inj",999,LT,1,2,3)
Instance details

Defined in Predicate.Core

Associated Types

type PP (p, q, r, s, t, u, v, w) a :: Type Source #

Methods

eval :: MonadEval m => proxy (p, q, r, s, t, u, v, w) -> POpts -> a -> m (TT (PP (p, q, r, s, t, u, v, w) a)) Source #

evaluation methods

runPQ :: (P p a, P q a, MonadEval m) => String -> proxy1 p -> proxy2 q -> POpts -> a -> [Holder] -> m (Either (TT x) (PP p a, PP q a, TT (PP p a), TT (PP q a))) Source #

convenience method to evaluate two expressions using the same input and return the results

runPQBool :: (P p a, PP p a ~ Bool, P q a, PP q a ~ Bool, MonadEval m) => String -> proxy1 p -> proxy2 q -> POpts -> a -> [Holder] -> m (Either (TT x) (PP p a, PP q a, TT (PP p a), TT (PP q a))) Source #

convenience method to evaluate two boolean expressions using the same input and return the results

evalBool :: (MonadEval m, P p a, PP p a ~ Bool) => proxy p -> POpts -> a -> m (TT (PP p a)) Source #

A specialised form of eval that works only on predicates

evalBoolHide :: forall p a m. (MonadEval m, P p a, PP p a ~ Bool) => POpts -> a -> m (TT (PP p a)) Source #

evaluate a boolean expressions but hide the results unless verbose

evalHide :: forall p a m. (MonadEval m, P p a) => POpts -> a -> m (TT (PP p a)) Source #

evaluate a expressions but hide the results unless verbose

evalQuick :: forall p i. P p i => i -> Either String (PP p i) Source #

wrap, unwrap expressions

data Unwrap p Source #

unwraps a value (see _Wrapped')

>>> pz @(Unwrap Id) (SG.Sum (-13))
PresentT (-13)
>>> pl @(Unwrap Id >> '(Id, 'True)) (SG.Sum 13)
Present (13,True) ((>>) (13,True) | {'(13,True)})
PresentT (13,True)
Instances
(PP p x ~ s, P p x, Show s, Show (Unwrapped s), Wrapped s) => P (Unwrap p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Unwrap p) x :: Type Source #

Methods

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

type PP (Unwrap p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Unwrap p :: Type) x = Unwrapped (PP p x)

data Wrap (t :: Type) p Source #

wraps a value (see _Wrapped' and _Unwrapped')

>>> pz @(Wrap (SG.Sum _) Id) (-13)
PresentT (Sum {getSum = -13})
>>> pz @(Wrap SG.Any (Ge 4)) 13
PresentT (Any {getAny = True})
>>> import Data.List.NonEmpty (NonEmpty(..))
>>> pz @(Wrap (NonEmpty _) (Uncons >> 'Just Id)) "abcd"
PresentT ('a' :| "bcd")
>>> pl @(Wrap (SG.Sum _) Id) 13
Present Sum {getSum = 13} (Wrap Sum {getSum = 13} | 13)
PresentT (Sum {getSum = 13})
>>> pl @(Wrap (SG.Sum _) Id >> STimes 4 Id) 13
Present Sum {getSum = 52} ((>>) Sum {getSum = 52} | {getSum = 13})
PresentT (Sum {getSum = 52})
>>> pl @(Wrap _ 13 <> Id) (SG.Sum @Int 12)
Present Sum {getSum = 25} (Sum {getSum = 13} <> Sum {getSum = 12} = Sum {getSum = 25})
PresentT (Sum {getSum = 25})
Instances
P (WrapT t p) x => P (Wrap t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Wrap t p) x :: Type Source #

Methods

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

type PP (Wrap t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Wrap t p :: Type) x

data Wrap' t p Source #

Instances
(Show (PP p x), P p x, Unwrapped (PP s x) ~ PP p x, Wrapped (PP s x), Show (PP s x)) => P (Wrap' s p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Wrap' s p) x :: Type Source #

Methods

eval :: MonadEval m => proxy (Wrap' s p) -> POpts -> x -> m (TT (PP (Wrap' s p) x)) Source #

type PP (Wrap' s p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Wrap' s p :: Type) x = PP s x

failure expressions

data Fail t prt Source #

Fails the computation with a message but allows you to set the output type

>>> pz @(Failt Int (PrintF "value=%03d" Id)) 99
FailT "value=099"
>>> pz @('False || (Fail 'True "failed")) (99,"somedata")
FailT "failed"
>>> pz @('False || (Fail (Hole Bool) "failed")) (99,"somedata")
FailT "failed"
>>> pz @('False || (Fail (Hole _) "failed")) (99,"somedata")
FailT "failed"
Instances
(P prt a, PP prt a ~ String) => P (Fail t prt :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Fail t prt) a :: Type Source #

Methods

eval :: MonadEval m => proxy (Fail t prt) -> POpts -> a -> m (TT (PP (Fail t prt) a)) Source #

type PP (Fail t prt :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (Fail t prt :: Type) a = PP t a

data Failp p Source #

Fails the computation with a message where the input value is a Proxy

>>> pz @(Ix 3 (Failp "oops")) "abcd"
PresentT 'd'
>>> pz @(Ix 3 (Failp "oops")) "abc"
FailT "oops"
Instances
P (Fail Unproxy p) x => P (Failp p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Failp p) x :: Type Source #

Methods

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

type PP (Failp p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Failp p :: Type) x = PP (Fail Unproxy p) x

data Failt (t :: Type) p Source #

Fails the computation with a message (wraps the type in Hole)

>>> pz @(Failt Int (PrintF "value=%03d" Id)) 99
FailT "value=099"
Instances
P (Fail (Hole t) p) x => P (Failt t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Failt t p) x :: Type Source #

Methods

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

type PP (Failt t p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Failt t p :: Type) x = PP (Fail (Hole t) p) x

data FailS p Source #

Fails the computation with a message for simple failures: doesnt preserve types

>>> pz @(FailS (PrintT "value=%03d string=%s" Id)) (99,"somedata")
FailT "value=099 string=somedata"
Instances
P (Fail I p) x => P (FailS p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (FailS p) x :: Type Source #

Methods

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

type PP (FailS p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (FailS p :: Type) x = PP (Fail I p) x

tuple expressions

data Fst p Source #

similar to fst

>>> pz @(Fst Id) (10,"Abc")
PresentT 10
>>> pz @(Fst Id) (10,"Abc",'x')
PresentT 10
>>> pz @(Fst Id) (10,"Abc",'x',False)
PresentT 10
>>> pl @(Fst Id) (99,'a',False,1.3)
Present 99 (Fst 99 | (99,'a',False,1.3))
PresentT 99
Instances
(Show (ExtractL1T (PP p x)), ExtractL1C (PP p x), P p x, Show (PP p x)) => P (Fst p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Fst p) x :: Type Source #

Methods

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

type PP (Fst p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Fst p :: Type) x

data Snd p Source #

similar to snd

>>> pz @(Snd Id) (10,"Abc")
PresentT "Abc"
>>> pz @(Snd Id) (10,"Abc",True)
PresentT "Abc"
>>> pl @(Snd Id) (99,'a',False,1.3)
Present 'a' (Snd 'a' | (99,'a',False,1.3))
PresentT 'a'
Instances
(Show (ExtractL2T (PP p x)), ExtractL2C (PP p x), P p x, Show (PP p x)) => P (Snd p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Snd p) x :: Type Source #

Methods

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

type PP (Snd p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Snd p :: Type) x

data Thd p Source #

similar to 3rd element in a n-tuple

>>> pz @(Thd Id) (10,"Abc",133)
PresentT 133
>>> pz @(Thd Id) (10,"Abc",133,True)
PresentT 133
>>> pl @(Thd Id) (99,'a',False,1.3)
Present False (Thd False | (99,'a',False,1.3))
PresentT False
Instances
(Show (ExtractL3T (PP p x)), ExtractL3C (PP p x), P p x, Show (PP p x)) => P (Thd p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Thd p) x :: Type Source #

Methods

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

type PP (Thd p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (Thd p :: Type) x

data L1 p Source #

Instances
P (L1T p) x => P (L1 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L1 p) x :: Type Source #

Methods

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

type PP (L1 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (L1 p :: Type) x

data L2 p Source #

Instances
P (L2T p) x => P (L2 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L2 p) x :: Type Source #

Methods

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

type PP (L2 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (L2 p :: Type) x

data L3 p Source #

Instances
P (L3T p) x => P (L3 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L3 p) x :: Type Source #

Methods

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

type PP (L3 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (L3 p :: Type) x

data L4 p Source #

similar to 4th element in a n-tuple

>>> pz @(L4 Id) (10,"Abc",'x',True)
PresentT True
>>> pz @(L4 (Fst (Snd Id))) ('x',((10,"Abc",'x',999),"aa",1),9)
PresentT 999
>>> pl @(L4 Id) (99,'a',False,"someval")
Present "someval" (L4 "someval" | (99,'a',False,"someval"))
PresentT "someval"
Instances
(Show (ExtractL4T (PP p x)), ExtractL4C (PP p x), P p x, Show (PP p x)) => P (L4 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L4 p) x :: Type Source #

Methods

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

type PP (L4 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (L4 p :: Type) x

data L5 p Source #

similar to 5th element in a n-tuple

>>> pz @(L5 Id) (10,"Abc",'x',True,1)
PresentT 1
Instances
(Show (ExtractL5T (PP p x)), ExtractL5C (PP p x), P p x, Show (PP p x)) => P (L5 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L5 p) x :: Type Source #

Methods

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

type PP (L5 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (L5 p :: Type) x

data L6 p Source #

similar to 6th element in a n-tuple

>>> pz @(L6 Id) (10,"Abc",'x',True,1,99)
PresentT 99
Instances
(Show (ExtractL6T (PP p x)), ExtractL6C (PP p x), P p x, Show (PP p x)) => P (L6 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (L6 p) x :: Type Source #

Methods

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

type PP (L6 p :: Type) x Source # 
Instance details

Defined in Predicate.Core

type PP (L6 p :: Type) x

boolean expressions

data p && q infixr 3 Source #

similar to &&

>>> pz @(Fst Id && Snd Id) (True, True)
TrueT
>>> pz @(Id > 15 && Id < 17) 16
TrueT
>>> pz @(Id > 15 && Id < 17) 30
FalseT
>>> pz @(Fst Id && (Length (Snd Id) >= 4)) (True,[11,12,13,14])
TrueT
>>> pz @(Fst Id && (Length (Snd Id) == 4)) (True,[12,11,12,13,14])
FalseT
Instances
(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p && q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p && q) a :: Type Source #

Methods

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

type PP (p && q :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (p && q :: Type) a = Bool

data p &&~ q infixr 3 Source #

short circuit version of boolean And

>>> pl @(Id > 10 &&~ Failt _ "ss") 9
False (False &&~ _ | (9 > 10))
FalseT
>>> pl @(Id > 10 &&~ Id == 12) 11
False (True &&~ False | (11 == 12))
FalseT
>>> pl @(Id > 10 &&~ Id == 11) 11
True (True &&~ True)
TrueT
Instances
(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p &&~ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p &&~ q) a :: Type Source #

Methods

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

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

Defined in Predicate.Core

type PP (p &&~ q :: Type) a = Bool

data p || q infixr 2 Source #

similar to ||

>>> pz @(Fst Id || (Length (Snd Id) >= 4)) (False,[11,12,13,14])
TrueT
>>> pz @(Not (Fst Id) || (Length (Snd Id) == 4)) (True,[12,11,12,13,14])
FalseT
Instances
(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p || q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p || q) a :: Type Source #

Methods

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

type PP (p || q :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (p || q :: Type) a = Bool

data p ||~ q infixr 2 Source #

short circuit version of boolean Or

>>> pl @(Id > 10 ||~ Failt _ "ss") 11
True (True ||~ _ | (11 > 10))
TrueT
>>> pz @(Id > 10 ||~ Id == 9) 9
TrueT
>>> pl @(Id > 10 ||~ Id > 9) 9
False (False ||~ False | (9 > 10) ||~ (9 > 9))
FalseT
Instances
(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p ||~ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p ||~ q) a :: Type Source #

Methods

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

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

Defined in Predicate.Core

type PP (p ||~ q :: Type) a = Bool

data p ~> q infixr 1 Source #

boolean implication

>>> pz @(Fst Id ~> (Length (Snd Id) >= 4)) (True,[11,12,13,14])
TrueT
>>> pz @(Fst Id ~> (Length (Snd Id) == 4)) (True,[12,11,12,13,14])
FalseT
>>> pz @(Fst Id ~> (Length (Snd Id) == 4)) (False,[12,11,12,13,14])
TrueT
>>> pz @(Fst Id ~> (Length (Snd Id) >= 4)) (False,[11,12,13,14])
TrueT
Instances
(P p a, P q a, PP p a ~ Bool, PP q a ~ Bool) => P (p ~> q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p ~> q) a :: Type Source #

Methods

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

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

Defined in Predicate.Core

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

data Not p Source #

not function

>>> pz @(Not Id) False
TrueT
>>> pz @(Not Id) True
FalseT
>>> pz @(Not (Fst Id)) (True,22)
FalseT
>>> pl @(Not (Lt 3)) 13
True (Not (13 < 3))
TrueT
>>> pl @(Not 'True) ()
False (Not ('True))
FalseT
Instances
(PP p x ~ Bool, P p x) => P (Not p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Not p) x :: Type Source #

Methods

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

type PP (Not p :: Type) x Source # 
Instance details

Defined in Predicate.Core

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

data Between p q r Source #

A predicate that determines if the value is between 'p' and 'q'

>>> pz @(Between 5 8 Len) [1,2,3,4,5,5,7]
TrueT
>>> pl @(Between 5 8 Id) 9
False (9 <= 8)
FalseT
>>> pl @(Between (Fst Id >> Fst Id) (Fst Id >> Snd Id) (Snd Id)) ((1,4),3)
True (1 <= 3 <= 4)
TrueT
>>> pl @(Between (Fst Id >> Fst Id) (Fst Id >> Snd Id) (Snd Id)) ((1,4),10)
False (10 <= 4)
FalseT
Instances
(Ord (PP p x), Show (PP p x), PP r x ~ PP p x, PP r x ~ PP q x, P p x, P q x, P r x) => P (Between p q r :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Between p q r) x :: Type Source #

Methods

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

type PP (Between p q r :: Type) x Source # 
Instance details

Defined in Predicate.Core

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

data All p q Source #

similar to all

>>> pl @(All (Between 1 8 Id) Id) [7,3,4,1,2,9,0,1]
False (All(8) i=5 (9 <= 8))
FalseT
>>> pz @(All Odd Id) [1,5,11,5,3]
TrueT
>>> pz @(All Odd Id) []
TrueT
>>> run @'OANV @(All Even Id) [1,5,11,5,3]
False All(5) i=0 (1 == 0)
|
+- P Id [1,5,11,5,3]
|
+- False i=0: 1 == 0
|  |
|  +- P 1 `mod` 2 = 1
|  |  |
|  |  +- P I
|  |  |
|  |  `- P '2
|  |
|  `- P '0
|
+- False i=1: 1 == 0
|  |
|  +- P 5 `mod` 2 = 1
|  |  |
|  |  +- P I
|  |  |
|  |  `- P '2
|  |
|  `- P '0
|
+- False i=2: 1 == 0
|  |
|  +- P 11 `mod` 2 = 1
|  |  |
|  |  +- P I
|  |  |
|  |  `- P '2
|  |
|  `- P '0
|
+- False i=3: 1 == 0
|  |
|  +- P 5 `mod` 2 = 1
|  |  |
|  |  +- P I
|  |  |
|  |  `- P '2
|  |
|  `- P '0
|
`- False i=4: 1 == 0
   |
   +- P 3 `mod` 2 = 1
   |  |
   |  +- P I
   |  |
   |  `- P '2
   |
   `- P '0
FalseT
>>> pl @(All (Gt 3) (Fst Id)) ([10,12,3,5],"ss")
False (All(4) i=2 (3 > 3))
FalseT
>>> pl @(All (Lt 3) Id) [1::Int .. 10]
False (All(10) i=2 (3 < 3))
FalseT
Instances
(P p a, PP p a ~ Bool, PP q x ~ f a, P q x, Show a, Foldable f) => P (All p q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (All p q) x :: Type Source #

Methods

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

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

Defined in Predicate.Core

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

data Any p q Source #

similar to any

>>> pl @(Any Even Id) [1,5,11,5,3]
False (Any(5))
FalseT
>>> pl @(Any Even Id) [1,5,112,5,3]
True (Any(5) i=2 (0 == 0))
TrueT
>>> pz @(Any Even Id) []
FalseT
>>> pl @(Any (Gt 3) (Fst Id)) ([10,12,3,5],"ss")
True (Any(4) i=0 (10 > 3))
TrueT
>>> pl @(Any (Same 2) Id) [1,4,5]
False (Any(3))
FalseT
>>> pl @(Any (Same 2) Id) [1,4,5,2,1]
True (Any(5) i=3 (2 == 2))
TrueT
Instances
(P p a, PP p a ~ Bool, PP q x ~ f a, P q x, Show a, Foldable f) => P (Any p q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (Any p q) x :: Type Source #

Methods

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

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

Defined in Predicate.Core

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

data IdBool p Source #

id function on a boolean

>>> pz @(IdBool Id) False
FalseT
>>> pz @(IdBool Id) True
TrueT
>>> pz @(IdBool (Fst Id)) (True,22)
TrueT
>>> pl @(IdBool (Lt 3)) 13
False (IdBool (13 < 3))
FalseT
Instances
(PP p x ~ Bool, P p x) => P (IdBool p :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (IdBool p) x :: Type Source #

Methods

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

type PP (IdBool p :: Type) x Source # 
Instance details

Defined in Predicate.Core

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

miscellaneous

data p <..> q infix 4 Source #

A operator predicate that determines if the value is between 'p' and 'q'

>>> pz @(5 <..> 8) 6
TrueT
>>> pz @(10 % 4 <..> 40 % 5) 4
TrueT
>>> pz @(10 % 4 <..> 40 % 5) 33
FalseT
Instances
P (BetweenT p q) x => P (p <..> q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p <..> q) x :: Type Source #

Methods

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

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

Defined in Predicate.Core

type PP (p <..> q :: Type) x

data p << q infixr 1 Source #

flipped version of >>

Instances
P (LeftArrowsT p q) x => P (p << q :: Type) x Source # 
Instance details

Defined in Predicate.Core

Associated Types

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

Methods

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

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

Defined in Predicate.Core

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

data Swap Source #

swaps using SwapC

>>> pz @Swap (Left 123)
PresentT (Right 123)
>>> pz @Swap (Right 123)
PresentT (Left 123)
>>> pz @Swap (These 'x' 123)
PresentT (These 123 'x')
>>> pz @Swap (This 'x')
PresentT (That 'x')
>>> pz @Swap (That 123)
PresentT (This 123)
>>> pz @Swap (123,'x')
PresentT ('x',123)
>>> pz @Swap (Left "abc")
PresentT (Right "abc")
>>> pz @Swap (Right 123)
PresentT (Left 123)
>>> pl @Swap (Right "asfd")
Present Left "asfd" (Swap Left "asfd" | Right "asfd")
PresentT (Left "asfd")
>>> pl @Swap (12,"asfd")
Present ("asfd",12) (Swap ("asfd",12) | (12,"asfd"))
PresentT ("asfd",12)
Instances
(Show (p a b), SwapC p, Show (p b a)) => P Swap (p a b) Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP Swap (p a b) :: Type Source #

Methods

eval :: MonadEval m => proxy Swap -> POpts -> p a b -> m (TT (PP Swap (p a b))) Source #

type PP Swap (p a b) Source # 
Instance details

Defined in Predicate.Core

type PP Swap (p a b) = p b a

class Bifunctor p => SwapC p where Source #

Methods

swapC :: p a b -> p b a Source #

Instances
SwapC Either Source # 
Instance details

Defined in Predicate.Core

Methods

swapC :: Either a b -> Either b a Source #

SwapC (,) Source # 
Instance details

Defined in Predicate.Core

Methods

swapC :: (a, b) -> (b, a) Source #

SwapC These Source # 
Instance details

Defined in Predicate.Core

Methods

swapC :: These a b -> These b a Source #

data (p :: k -> k1) $ (q :: k) infixr 0 Source #

like $ for expressions

>>> pl @(Fst $ Snd $ Id) ((1,2),(3,4))
Present 3 (Fst 3 | (3,4))
PresentT 3
>>> pl @((<=) 4 $ Fst $ Snd $ Id) ((1,2),(3,4))
False (4 <= 3)
FalseT
Instances
P (p q) a => P (p $ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (p $ q) a :: Type Source #

Methods

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

type PP (p $ q :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (p $ q :: Type) a = PP (p q) a

data (q :: k) & (p :: k -> k1) infixl 1 Source #

similar to &

>>> pl @(Id & Fst & Singleton & Length) (13,"xyzw")
Present 1 (Length 1 | [13])
PresentT 1
>>> pl @(2 & (&&&) "abc") ()
Present ("abc",2) (W '("abc",2))
PresentT ("abc",2)
>>> pl @(2 & '(,) "abc") ()
Present ("abc",2) ('("abc",2))
PresentT ("abc",2)
>>> pl @('(,) 4 $ '(,) 7 $ "aa") ()
Present (4,(7,"aa")) ('(4,(7,"aa")))
PresentT (4,(7,"aa"))
>>> pl @(Thd $ Snd $ Fst Id) ((1,("W",9,'a')),(3,4))
Present 'a' (Thd 'a' | ("W",9,'a'))
PresentT 'a'
Instances
P (p q) a => P (q & p :: Type) a Source # 
Instance details

Defined in Predicate.Core

Associated Types

type PP (q & p) a :: Type Source #

Methods

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

type PP (q & p :: Type) a Source # 
Instance details

Defined in Predicate.Core

type PP (q & p :: Type) a = PP (p q) a