| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Predicate.Data.Enum
Description
promoted enum functions
Synopsis
- data p ... q
- data EnumFromTo p q
- data EnumFromThenTo p q r
- data FromEnum p
- data SuccB p q
- data SuccB' q
- data PredB p q
- data PredB' q
- data ToEnumBDef (t :: Type) def
- data ToEnumBDef' t def
- data ToEnumBFail (t :: Type)
- data Succ p
- data SuccN n p
- data Pred p
- data ToEnum (t :: Type) p
- data ToEnum' t p
constructors
similar to enumFromTo
>>>pz @(2 ... 5) ()PresentT [2,3,4,5]
>>>pz @('LT ... 'GT) ()PresentT [LT,EQ,GT]
>>>pz @('Just (MkDay '(2020, 1, 2)) ... 'Just (MkDay '(2020, 1, 7))) ()PresentT [2020-01-02,2020-01-03,2020-01-04,2020-01-05,2020-01-06,2020-01-07]
data EnumFromTo p q Source #
similar to enumFromTo
>>>pz @(EnumFromTo 'GT 'LT) ()PresentT []
>>>pz @(EnumFromTo (Pred Id) (Succ Id)) (SG.Max 10)PresentT [Max {getMax = 9},Max {getMax = 10},Max {getMax = 11}]
>>>pz @(EnumFromTo 1 20 >> Map '(Id, (If (Id `Mod` 3 == 0) "Fizz" "" <> If (Id `Mod` 5 == 0) "Buzz" "")) Id) 123PresentT [(1,""),(2,""),(3,"Fizz"),(4,""),(5,"Buzz"),(6,"Fizz"),(7,""),(8,""),(9,"Fizz"),(10,"Buzz"),(11,""),(12,"Fizz"),(13,""),(14,""),(15,"FizzBuzz"),(16,""),(17,""),(18,"Fizz"),(19,""),(20,"Buzz")]
>>>pl @(EnumFromTo (Pure SG.Min 9) (Pure _ 13)) ()Present [Min {getMin = 9},Min {getMin = 10},Min {getMin = 11},Min {getMin = 12},Min {getMin = 13}] (Min {getMin = 9} ... Min {getMin = 13}) PresentT [Min {getMin = 9},Min {getMin = 10},Min {getMin = 11},Min {getMin = 12},Min {getMin = 13}]
>>>pl @(EnumFromTo (Wrap (SG.Min _) 9) (Wrap _ 13)) ()Present [Min {getMin = 9},Min {getMin = 10},Min {getMin = 11},Min {getMin = 12},Min {getMin = 13}] (Min {getMin = 9} ... Min {getMin = 13}) PresentT [Min {getMin = 9},Min {getMin = 10},Min {getMin = 11},Min {getMin = 12},Min {getMin = 13}]
Instances
| (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 # | |
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 # | |
| type PP (EnumFromTo p q :: Type) x Source # | |
Defined in Predicate.Data.Enum | |
data EnumFromThenTo p q r Source #
similar to enumFromThenTo
>>>pz @(EnumFromThenTo (ToEnum Day 10) (ToEnum Day 20) (ToEnum Day 70)) ()PresentT [1858-11-27,1858-12-07,1858-12-17,1858-12-27,1859-01-06,1859-01-16,1859-01-26]
>>>pz @(EnumFromThenTo (ReadP Day "2020-01-12") (ReadP Day "2020-02-12") (ReadP Day "2020-08-12")) ()PresentT [2020-01-12,2020-02-12,2020-03-14,2020-04-14,2020-05-15,2020-06-15,2020-07-16]
Instances
| (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 # | |
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 # | |
| type PP (EnumFromThenTo p q r :: Type) x Source # | |
Defined in Predicate.Data.Enum | |
fromEnum function
>>>pz @(FromEnum Id) 'x'PresentT 120
>>>pl @(FromEnum ("aa" ==! Id) >> Same 1) "aaaa"False ((>>) False | {0 == 1}) FalseT
>>>pl @(FromEnum ("aa" ==! Id) >> ToEnum OrderingP Id) "aaaa"Present CGt ((>>) CGt | {ToEnum CGt | 0}) PresentT CGt
>>>pl @(Map (FromEnum Id) Id >> Map (ToEnum Char Id) Id) ("abcd" :: String)Present "abcd" ((>>) "abcd" | {Map "abcd" | [97,98,99,100]}) PresentT "abcd"
bounded enums
bounded succ function
>>>pz @(SuccB 'LT Id) GTPresentT LT
bounded succ function
>>>pz @(SuccB' Id) GTFailT "Succ bounded"
>>>pz @(SuccB' Id) (13 :: Int)PresentT 14
>>>pz @(SuccB' Id) LTPresentT EQ
bounded pred function
>>>pl @(PredB 'GT Id) LTPresent GT (PredB out of range) PresentT GT
>>>pl @(PredB 'LT Id) GTPresent EQ (PredB EQ | GT) PresentT EQ
bounded pred function
>>>pz @(PredB' Id) (13 :: Int)PresentT 12
>>>pz @(PredB' Id) LTFailT "Pred bounded"
>>>pl @(PredB' Id) GTPresent EQ (PredB EQ | GT) PresentT EQ
>>>pl @(PredB' Id) LTError Pred bounded (PredB out of range) FailT "Pred bounded"
data ToEnumBDef (t :: Type) def Source #
bounded toEnum function
>>>pz @(ToEnumBDef Ordering LT) 2PresentT GT
>>>pz @(ToEnumBDef Ordering LT) 6PresentT LT
>>>pl @(ToEnumBDef Ordering 'LT) 123Present LT (ToEnumBDef out of range) PresentT LT
>>>pl @(ToEnumBDef Ordering 'GT) 1Present EQ (ToEnumBDef EQ | 1) PresentT EQ
Instances
| P (ToEnumBDefT t def) x => P (ToEnumBDef t def :: Type) x Source # | |
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 # | |
| type PP (ToEnumBDef t def :: Type) x Source # | |
Defined in Predicate.Data.Enum | |
data ToEnumBDef' t def Source #
Instances
| (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 # | |
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 # | |
| type PP (ToEnumBDef' t def :: Type) a Source # | |
Defined in Predicate.Data.Enum | |
data ToEnumBFail (t :: Type) Source #
bounded toEnum function
>>>pz @(ToEnumBFail Ordering) 6FailT "ToEnum bounded"
>>>pl @(ToEnumBFail Ordering) 1Present EQ (ToEnumBDef EQ | 1) PresentT EQ
>>>pl @(ToEnumBFail Ordering) 44Error ToEnum bounded (ToEnumBDef out of range) FailT "ToEnum bounded"
Instances
| P (ToEnumBFailT t) x => P (ToEnumBFail t :: Type) x Source # | |
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 # | |
| type PP (ToEnumBFail t :: Type) x Source # | |
Defined in Predicate.Data.Enum | |
unsafe enum expressions
unbounded succ function
>>>pz @(Succ Id) 13PresentT 14
>>>pz @(Succ Id) LTPresentT EQ
>>>pz @(Succ Id) GTFailT "Succ IO e=Prelude.Enum.Ordering.succ: bad argument"
>>>pl @(Succ Id) 10Present 11 (Succ 11 | 10) PresentT 11
>>>pl @(Succ Id) True -- captures the exceptionError Succ IO e=Prelude.Enum.Bool.succ: bad argument (True) FailT "Succ IO e=Prelude.Enum.Bool.succ: bad argument"
SuccN n p (unsafe) increments an enum p by the given integral n
>>>pz @(ReadP Day Id >> Id ... SuccN 5 Id) "2020-07-27"PresentT [2020-07-27,2020-07-28,2020-07-29,2020-07-30,2020-07-31,2020-08-01]
>>>pz @(ReadP Day Id >> SuccN (Negate 5) Id) "2020-07-27"PresentT 2020-07-22
>>>pl @(SuccN 3 'LT) ()Error SuccN IO e=Prelude.Enum.Ordering.toEnum: bad argument (SuccN 3 LT) FailT "SuccN IO e=Prelude.Enum.Ordering.toEnum: bad argument"
>>>pz @(SuccN 2 'LT) ()PresentT GT
unbounded pred function
>>>pz @(Pred Id) 13PresentT 12
>>>pz @(Pred Id) LTFailT "Pred IO e=Prelude.Enum.Ordering.pred: bad argument"
unsafe toEnum function
>>>pz @(ToEnum Char Id) 120PresentT 'x'
>>>pl @(Map (FromEnum Id) Id >> Map (Id - 97 >> ToEnum Ordering Id) Id) ("abcde" :: String)Error ToEnum IO e=Prelude.Enum.Ordering.toEnum: bad argument(2) ([97,98,99,100,101] (>>) rhs failed) FailT "ToEnum IO e=Prelude.Enum.Ordering.toEnum: bad argument(2)"
>>>pl @((ToEnum Day Id *** ToEnum Day Id) >> EnumFromTo (Fst Id) (Snd Id)) (0,5)Present [1858-11-17,1858-11-18,1858-11-19,1858-11-20,1858-11-21,1858-11-22] ((>>) [1858-11-17,1858-11-18,1858-11-19,1858-11-20,1858-11-21,1858-11-22] | {1858-11-17 ... 1858-11-22}) PresentT [1858-11-17,1858-11-18,1858-11-19,1858-11-20,1858-11-21,1858-11-22]