Copyright | (c) Grant Weyburne 2022 |
---|---|
License | BSD-3 |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Primus.AsMaybe
Description
Synopsis
- class AsMaybe x b | x -> b where
- iterateT1 :: AsMaybe x a => (a -> x) -> a -> NonEmpty a
- unfoldrT :: AsMaybe t t => (t -> (a, t)) -> t -> [a]
- pairsT :: (x -> (a, x)) -> (y -> (b, y)) -> (x, y) -> ((a, b), (x, y))
- class ApThese e a x b | x e a -> b where
- toTheseT :: forall e a x b. ApThese e a x b => (a -> x) -> [a] -> [These e b]
- toTheseTS :: forall e a x b z. ApThese e a x b => (z -> a -> (z, x)) -> z -> [a] -> (z, [These e b])
- partitionEithersT :: forall e a b x. ApThese e a x b => (a -> x) -> [a] -> ([e], [b])
- partitionTheseT :: forall e a b x. ApThese e a x b => (a -> x) -> [a] -> ([e], [b], [(e, b)])
- filterT :: forall e a b x. ApThese e a x b => (a -> x) -> [a] -> [b]
- spanT :: forall e a x b. ApThese e a x b => (a -> x) -> [a] -> ([b], [a])
- spanTAlt :: forall e a x b. ApThese e a x b => (a -> x) -> [a] -> ([b], [a])
- spanTS :: forall e a x b z. ApThese e a x b => (z -> a -> (z, x)) -> z -> [a] -> (z, ([b], [a]))
- takeWhileT :: forall e a x b. ApThese e a x b => (a -> x) -> [a] -> [b]
- takeWhileTS :: forall e a x b z. ApThese e a x b => (z -> a -> (z, x)) -> z -> [a] -> (z, [b])
- class ApTheseF e a x b | x e a -> b where
AsMaybe
class AsMaybe x b | x -> b where Source #
converts to a Maybe
for failure types
Instances
b1 ~ [b] => AsMaybe [b] b1 Source # | |
Defined in Primus.AsMaybe | |
b ~ b1 => AsMaybe (Maybe b) b1 Source # | |
AsMaybe x z => AsMaybe (Identity x) z Source # | |
b ~ b1 => AsMaybe (Either e b) b1 Source # | |
(b ~ (b1, b2), AsMaybe x b1, AsMaybe y b2) => AsMaybe (x, y) b Source # | |
Defined in Primus.AsMaybe | |
(z ~ Arg b1 y, AsMaybe x b1) => AsMaybe (Arg x y) z Source # | |
b ~ b1 => AsMaybe (These e b) b1 Source # | |
(b ~ (b1, b2, b3), AsMaybe x b1, AsMaybe y b2, AsMaybe z b3) => AsMaybe (x, y, z) b Source # | |
Defined in Primus.AsMaybe |
pairsT :: (x -> (a, x)) -> (y -> (b, y)) -> (x, y) -> ((a, b), (x, y)) Source #
run a functions against each side of a tuple and stitch them together for use with unfoldrT
where "s" is a tuple and you want to stop as soon as the either terminates
ApThese
class ApThese e a x b | x e a -> b where Source #
flexible "e" to use with eg partitionTheseT
: Bool is also valid
Instances
(e ~ a, b ~ a) => ApThese e a Bool b Source # | |
ApThese e a x z => ApThese e a (Identity x) z Source # | |
(e ~ a, b1 ~ [b]) => ApThese e a [b] b1 Source # | |
Defined in Primus.AsMaybe | |
(e ~ a, b ~ b1) => ApThese e a (Maybe b) b1 Source # | |
(Semigroup e, b ~ (b1, b2), ApThese e a x b1, ApThese e a y b2) => ApThese e a (x, y) b Source # | |
Defined in Primus.AsMaybe | |
(z ~ Arg b1 y, ApThese e a x b1) => ApThese e a (Arg x y) z Source # | |
(e ~ e1, b ~ b1) => ApThese e1 a (Either e b) b1 Source # | |
(e ~ e1, b ~ b1) => ApThese e1 a (These e b) b1 Source # | |
(Semigroup e, b ~ (b1, b2, b3), ApThese e a x b1, ApThese e a y b2, ApThese e a z b3) => ApThese e a (x, y, z) b Source # | |
Defined in Primus.AsMaybe |
toTheseT :: forall e a x b. ApThese e a x b => (a -> x) -> [a] -> [These e b] Source #
apply a function to a list and convert to a list of These
toTheseTS :: forall e a x b z. ApThese e a x b => (z -> a -> (z, x)) -> z -> [a] -> (z, [These e b]) Source #
like toTheseT
with state
partitionEithersT :: forall e a b x. ApThese e a x b => (a -> x) -> [a] -> ([e], [b]) Source #
like toTheseT
but use partitionHereThere
on the results (swapped version of partition
)
partitionTheseT :: forall e a b x. ApThese e a x b => (a -> x) -> [a] -> ([e], [b], [(e, b)]) Source #
like toTheseT
but use partitionThese
on the results
filterT :: forall e a b x. ApThese e a x b => (a -> x) -> [a] -> [b] Source #
like partitionEithersT
ignoring the second element of the result
spanTS :: forall e a x b z. ApThese e a x b => (z -> a -> (z, x)) -> z -> [a] -> (z, ([b], [a])) Source #
like spanT
with state
takeWhileT :: forall e a x b. ApThese e a x b => (a -> x) -> [a] -> [b] Source #
like spanT
but ignore the second element of the result
takeWhileTS :: forall e a x b z. ApThese e a x b => (z -> a -> (z, x)) -> z -> [a] -> (z, [b]) Source #
like takeWhileT
with state
ApTheseF for use with
LRHist
class ApTheseF e a x b | x e a -> b where Source #
for use with LRHist
using a fixed "e"
Instances
(Monoid e, b ~ a) => ApTheseF e a Bool b Source # | |
ApTheseF e a x z => ApTheseF e a (Identity x) z Source # | |
(Monoid e, b1 ~ [b]) => ApTheseF e a [b] b1 Source # | |
Defined in Primus.AsMaybe | |
(Monoid e, b ~ b1) => ApTheseF e a (Maybe b) b1 Source # | |
(Semigroup e, b ~ (b1, b2), ApTheseF e a x b1, ApTheseF e a y b2) => ApTheseF e a (x, y) b Source # | |
Defined in Primus.AsMaybe | |
(z ~ Arg b1 y, ApTheseF e a x b1) => ApTheseF e a (Arg x y) z Source # | |
(e ~ e1, b ~ b1) => ApTheseF e1 a (Either e b) b1 Source # | |
(e ~ e1, b ~ b1) => ApTheseF e1 a (These e b) b1 Source # | |
(Semigroup e, b ~ (b1, b2, b3), ApTheseF e a x b1, ApTheseF e a y b2, ApTheseF e a z b3) => ApTheseF e a (x, y, z) b Source # | |
Defined in Primus.AsMaybe |