Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
Pipes
Description
This module is the recommended entry point to the pipes
library.
Read Pipes.Tutorial if you want a tutorial explaining how to use this library.
Synopsis
- data Proxy a' a b' b m r
- type X = Void
- type Effect = Proxy X () () X
- type Effect' m r = forall x' x y' y. Proxy x' x y' y m r
- runEffect :: Monad m => Effect m r -> m r
- type Producer b = Proxy X () () b
- type Producer' b m r = forall x' x. Proxy x' x () b m r
- yield :: Functor m => a -> Proxy x' x () a m ()
- for :: Functor m => Proxy x' x b' b m a' -> (b -> Proxy x' x c' c m b') -> Proxy x' x c' c m a'
- (~>) :: Functor m => (a -> Proxy x' x b' b m a') -> (b -> Proxy x' x c' c m b') -> a -> Proxy x' x c' c m a'
- (<~) :: Functor m => (b -> Proxy x' x c' c m b') -> (a -> Proxy x' x b' b m a') -> a -> Proxy x' x c' c m a'
- type Consumer a = Proxy () a () X
- type Consumer' a m r = forall y' y. Proxy () a y' y m r
- await :: Functor m => Consumer' a m a
- (>~) :: Functor m => Proxy a' a y' y m b -> Proxy () b y' y m c -> Proxy a' a y' y m c
- (~<) :: Functor m => Proxy () b y' y m c -> Proxy a' a y' y m b -> Proxy a' a y' y m c
- type Pipe a b = Proxy () a () b
- cat :: Functor m => Pipe a a m r
- (>->) :: Functor m => Proxy a' a () b m r -> Proxy () b c' c m r -> Proxy a' a c' c m r
- (<-<) :: Functor m => Proxy () b c' c m r -> Proxy a' a () b m r -> Proxy a' a c' c m r
- newtype ListT m a = Select {}
- runListT :: Monad m => ListT m a -> m ()
- class Enumerable t where
- next :: Monad m => Producer a m r -> m (Either r (a, Producer a m r))
- each :: (Functor m, Foldable f) => f a -> Proxy x' x () a m ()
- every :: (Monad m, Enumerable t) => t m a -> Proxy x' x () a m ()
- discard :: Monad m => a -> m ()
- class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type) where
- void :: Functor f => f a -> f ()
- class Monad m => MonadIO (m :: Type -> Type) where
- liftIO :: IO a -> m a
- class (forall (m :: Type -> Type). Monad m => Monad (t m)) => MonadTrans (t :: (Type -> Type) -> Type -> Type) where
- lift :: Monad m => m a -> t m a
- class MFunctor (t :: (Type -> Type) -> k -> Type) where
- hoist :: forall m n (b :: k). Monad m => (forall a. m a -> n a) -> t m b -> t n b
- class (MFunctor t, MonadTrans t) => MMonad (t :: (Type -> Type) -> Type -> Type) where
- embed :: forall (n :: Type -> Type) m b. Monad n => (forall a. m a -> t n a) -> t m b -> t n b
- class Foldable (t :: Type -> Type)
The Proxy Monad Transformer
data Proxy a' a b' b m r Source #
A Proxy
is a monad transformer that receives and sends information on both
an upstream and downstream interface.
The type variables signify:
a'
anda
- The upstream interface, where(a')
s go out and(a)
s come inb'
andb
- The downstream interface, where(b)
s go out and(b')
s come inm
- The base monadr
- The return value
Instances
MFunctor (Proxy a' a b' b :: (Type -> Type) -> Type -> Type) Source # | |
Defined in Pipes.Internal | |
MonadError e m => MonadError e (Proxy a' a b' b m) Source # | |
Defined in Pipes.Internal Methods throwError :: e -> Proxy a' a b' b m a0 catchError :: Proxy a' a b' b m a0 -> (e -> Proxy a' a b' b m a0) -> Proxy a' a b' b m a0 | |
MonadReader r m => MonadReader r (Proxy a' a b' b m) Source # | |
MonadState s m => MonadState s (Proxy a' a b' b m) Source # | |
MonadWriter w m => MonadWriter w (Proxy a' a b' b m) Source # | |
MMonad (Proxy a' a b' b) Source # | |
MonadTrans (Proxy a' a b' b) Source # | |
Defined in Pipes.Internal | |
MonadFail m => MonadFail (Proxy a' a b' b m) Source # | |
Defined in Pipes.Internal | |
MonadIO m => MonadIO (Proxy a' a b' b m) Source # | |
Defined in Pipes.Internal | |
Functor m => Applicative (Proxy a' a b' b m) Source # | |
Defined in Pipes.Internal Methods pure :: a0 -> Proxy a' a b' b m a0 (<*>) :: Proxy a' a b' b m (a0 -> b0) -> Proxy a' a b' b m a0 -> Proxy a' a b' b m b0 liftA2 :: (a0 -> b0 -> c) -> Proxy a' a b' b m a0 -> Proxy a' a b' b m b0 -> Proxy a' a b' b m c (*>) :: Proxy a' a b' b m a0 -> Proxy a' a b' b m b0 -> Proxy a' a b' b m b0 (<*) :: Proxy a' a b' b m a0 -> Proxy a' a b' b m b0 -> Proxy a' a b' b m a0 | |
Functor m => Functor (Proxy a' a b' b m) Source # | |
Functor m => Monad (Proxy a' a b' b m) Source # | |
MonadCatch m => MonadCatch (Proxy a' a b' b m) Source # | |
Defined in Pipes.Internal | |
MonadThrow m => MonadThrow (Proxy a' a b' b m) Source # | |
Defined in Pipes.Internal | |
(Functor m, Monoid r, Semigroup r) => Monoid (Proxy a' a b' b m r) Source # | |
(Functor m, Semigroup r) => Semigroup (Proxy a' a b' b m r) Source # | |
type Effect' m r = forall x' x y' y. Proxy x' x y' y m r Source #
Like Effect
, but with a polymorphic type
runEffect :: Monad m => Effect m r -> m r Source #
Run a self-contained Effect
, converting it back to the base monad
Producers
Use yield
to produce output and (~>
) / for
to substitute yield
s.
yield
and (~>
) obey the Category
laws:
-- Substituting 'yield' with 'f' gives 'f'yield
~>
f = f -- Substituting every 'yield' with another 'yield' does nothing f~>
yield
= f -- 'yield' substitution is associative (f~>
g)~>
h = f~>
(g~>
h)
These are equivalent to the following "for loop laws":
-- Looping over a single yield simplifies to function applicationfor
(yield
x) f = f x -- Re-yielding every element of a stream returns the original streamfor
syield
= s -- Nested for loops can become a sequentialfor
loops if the inner loop -- body ignores the outer loop variablefor
s (\a ->for
(f a) g) =for
(for
s f) g =for
s (f~>
g)
type Producer' b m r = forall x' x. Proxy x' x () b m r Source #
Like Producer
, but with a polymorphic type
for :: Functor m => Proxy x' x b' b m a' -> (b -> Proxy x' x c' c m b') -> Proxy x' x c' c m a' Source #
(for p body)
loops over p
replacing each yield
with body
.
for
::Functor
m =>Producer
b m r -> (b ->Effect
m ()) ->Effect
m rfor
::Functor
m =>Producer
b m r -> (b ->Producer
c m ()) ->Producer
c m rfor
::Functor
m =>Pipe
x b m r -> (b ->Consumer
x m ()) ->Consumer
x m rfor
::Functor
m =>Pipe
x b m r -> (b ->Pipe
x c m ()) ->Pipe
x c m r
The following diagrams show the flow of information:
.---> b
/ |
+-----------+ / +-----|-----+ +---------------+
| | / | v | | |
| | / | | | |
x ==> p ==> b ---' x ==> body ==> c = x ==> for
p body ==> c
| | | | | |
| | | | | | | | |
+-----|-----+ +-----|-----+ +-------|-------+
v v v
r () r
For a more complete diagram including bidirectional flow, see Pipes.Core.
(~>) :: Functor m => (a -> Proxy x' x b' b m a') -> (b -> Proxy x' x c' c m b') -> a -> Proxy x' x c' c m a' infixr 4 Source #
Compose loop bodies
(~>
) ::Functor
m => (a ->Producer
b m r) -> (b ->Effect
m ()) -> (a ->Effect
m r) (~>
) ::Functor
m => (a ->Producer
b m r) -> (b ->Producer
c m ()) -> (a ->Producer
c m r) (~>
) ::Functor
m => (a ->Pipe
x b m r) -> (b ->Consumer
x m ()) -> (a ->Consumer
x m r) (~>
) ::Functor
m => (a ->Pipe
x b m r) -> (b ->Pipe
x c m ()) -> (a ->Pipe
x c m r)
The following diagrams show the flow of information:
a .---> b a
| / | |
+-----|-----+ / +-----|-----+ +------|------+
| v | / | v | | v |
| | / | | | |
x ==> f ==> b ---' x ==> g ==> c = x ==> f ~>
g ==> c
| | | | | |
| | | | | | | | |
+-----|-----+ +-----|-----+ +------|------+
v v v
r () r
For a more complete diagram including bidirectional flow, see Pipes.Core.
(<~) :: Functor m => (b -> Proxy x' x c' c m b') -> (a -> Proxy x' x b' b m a') -> a -> Proxy x' x c' c m a' infixl 4 Source #
(~>
) with the arguments flipped
Consumers
Use await
to request input and (>~
) to substitute await
s.
await
and (>~
) obey the Category
laws:
-- Substituting every 'await' with another 'await' does nothingawait
>~
f = f -- Substituting 'await' with 'f' gives 'f' f>~
await
= f -- 'await' substitution is associative (f>~
g)>~
h = f>~
(g>~
h)
type Consumer' a m r = forall y' y. Proxy () a y' y m r Source #
Like Consumer
, but with a polymorphic type
(>~) :: Functor m => Proxy a' a y' y m b -> Proxy () b y' y m c -> Proxy a' a y' y m c infixr 5 Source #
(draw >~ p)
loops over p
replacing each await
with draw
(>~
) ::Functor
m =>Effect
m b ->Consumer
b m c ->Effect
m c (>~
) ::Functor
m =>Consumer
a m b ->Consumer
b m c ->Consumer
a m c (>~
) ::Functor
m =>Producer
y m b ->Pipe
b y m c ->Producer
y m c (>~
) ::Functor
m =>Pipe
a y m b ->Pipe
b y m c ->Pipe
a y m c
The following diagrams show the flow of information:
+-----------+ +-----------+ +-------------+
| | | | | |
| | | | | |
a ==> f ==> y .---> b ==> g ==> y = a ==> f >~
g ==> y
| | / | | | |
| | | / | | | | | |
+-----|-----+ / +-----|-----+ +------|------+
v / v v
b ----' c c
For a more complete diagram including bidirectional flow, see Pipes.Core.
(~<) :: Functor m => Proxy () b y' y m c -> Proxy a' a y' y m b -> Proxy a' a y' y m c infixl 5 Source #
(>~
) with the arguments flipped
Pipes
Use await
and yield
to build Pipe
s and (>->
) to connect Pipe
s.
cat
and (>->
) obey the Category
laws:
-- Useless use of catcat
>->
f = f -- Redirecting output to cat does nothing f>->
cat
= f -- The pipe operator is associative (f>->
g)>->
h = f>->
(g>->
h)
(>->) :: Functor m => Proxy a' a () b m r -> Proxy () b c' c m r -> Proxy a' a c' c m r infixl 7 Source #
Pipe
composition, analogous to the Unix pipe operator
(>->
) ::Functor
m =>Producer
b m r ->Consumer
b m r ->Effect
m r (>->
) ::Functor
m =>Producer
b m r ->Pipe
b c m r ->Producer
c m r (>->
) ::Functor
m =>Pipe
a b m r ->Consumer
b m r ->Consumer
a m r (>->
) ::Functor
m =>Pipe
a b m r ->Pipe
b c m r ->Pipe
a c m r
The following diagrams show the flow of information:
+-----------+ +-----------+ +-------------+
| | | | | |
| | | | | |
a ==> f ==> b ==> g ==> c = a ==> f >->
g ==> c
| | | | | |
| | | | | | | | |
+-----|-----+ +-----|-----+ +------|------+
v v v
r r r
For a more complete diagram including bidirectional flow, see Pipes.Core.
(<-<) :: Functor m => Proxy () b c' c m r -> Proxy a' a () b m r -> Proxy a' a c' c m r infixr 7 Source #
(>->
) with the arguments flipped
ListT
The list monad transformer, which extends a monad with non-determinism
The type variables signify:
m
- The base monada
- The values that the computationyield
s throughout its execution
For basic construction and composition of ListT
computations, much can be
accomplished using common typeclass methods.
return
corresponds toyield
, yielding a single value.- (
>>=
) corresponds tofor
, calling the second computation once for each time the first computationyield
s. mempty
neitheryield
s any values nor produces any effects in the base monad.- (
<>
) sequences two computations,yield
ing all the values of the first followed by all the values of the second. lift
converts an action in the base monad into a ListT computation which performs the action andyield
s a single value.
ListT
is a newtype wrapper for Producer
. You will likely need to use
Select
and enumerate
to convert back and forth between these two types
to take advantage of all the Producer
-related utilities that
Pipes.Prelude has to offer.
- To lift a plain list into a
ListT
computation, first applyeach
to turn the list into aProducer
. Then apply theSelect
constructor to convert fromProducer
toListT
. - For other ways to construct
ListT
computations, see the “Producers” section in Pipes.Prelude to buildProducer
s. These can then be converted toListT
usingSelect
. - To aggregate the values from a
ListT
computation (for example, to compute the sum of aListT
of numbers), first applyenumerate
to obtain aProducer
. Then see the “Folds” section in Pipes.Prelude to proceed.
Instances
MMonad ListT Source # | |
Enumerable ListT Source # | |
MonadTrans ListT Source # | |
MFunctor ListT Source # | |
MonadError e m => MonadError e (ListT m) Source # | |
Defined in Pipes | |
MonadReader i m => MonadReader i (ListT m) Source # | |
MonadState s m => MonadState s (ListT m) Source # | |
MonadWriter w m => MonadWriter w (ListT m) Source # | |
Monad m => MonadFail (ListT m) Source # | |
MonadIO m => MonadIO (ListT m) Source # | |
Monad m => MonadZip (ListT m) Source # | |
Foldable m => Foldable (ListT m) Source # | |
Defined in Pipes Methods fold :: Monoid m0 => ListT m m0 -> m0 foldMap :: Monoid m0 => (a -> m0) -> ListT m a -> m0 foldMap' :: Monoid m0 => (a -> m0) -> ListT m a -> m0 foldr :: (a -> b -> b) -> b -> ListT m a -> b foldr' :: (a -> b -> b) -> b -> ListT m a -> b foldl :: (b -> a -> b) -> b -> ListT m a -> b foldl' :: (b -> a -> b) -> b -> ListT m a -> b foldr1 :: (a -> a -> a) -> ListT m a -> a foldl1 :: (a -> a -> a) -> ListT m a -> a elem :: Eq a => a -> ListT m a -> Bool maximum :: Ord a => ListT m a -> a minimum :: Ord a => ListT m a -> a | |
(Functor m, Traversable m) => Traversable (ListT m) Source # | |
Functor m => Alternative (ListT m) Source # | |
Functor m => Applicative (ListT m) Source # | |
Functor m => Functor (ListT m) Source # | |
Monad m => Monad (ListT m) Source # | |
Monad m => MonadPlus (ListT m) Source # | |
MonadCatch m => MonadCatch (ListT m) Source # | |
MonadThrow m => MonadThrow (ListT m) Source # | |
Functor m => Monoid (ListT m a) Source # | |
Functor m => Semigroup (ListT m a) Source # | |
class Enumerable t where Source #
Enumerable
generalizes Foldable
, converting effectful
containers to ListT
s.
Instances of Enumerable
must satisfy these two laws:
toListT (return r) = return r toListT $ do x <- m = do x <- toListT m f x toListT (f x)
In other words, toListT
is monad morphism.
Instances
Enumerable ListT Source # | |
Enumerable MaybeT Source # | |
Enumerable (ExceptT e) Source # | |
Enumerable (IdentityT :: (Type -> Type) -> Type -> Type) Source # | |
Utilities
every :: (Monad m, Enumerable t) => t m a -> Proxy x' x () a m () Source #
Convert an Enumerable
to a Producer
every
:: (Monad
m,Enumerable
t) => t m a ->Producer
a m ()
Re-exports
Control.Monad re-exports void
Control.Monad.IO.Class re-exports MonadIO
.
Control.Monad.Trans.Class re-exports MonadTrans
.
Control.Monad.Morph re-exports MFunctor
.
Data.Foldable re-exports Foldable
(the class name only).
class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type) where #
Minimal complete definition
Nothing
Instances
class Monad m => MonadIO (m :: Type -> Type) where #
Instances
class (forall (m :: Type -> Type). Monad m => Monad (t m)) => MonadTrans (t :: (Type -> Type) -> Type -> Type) where #
Instances
class MFunctor (t :: (Type -> Type) -> k -> Type) where #
Instances
MFunctor ListT Source # | |
MFunctor Lift | |
Defined in Control.Monad.Morph | |
MFunctor MaybeT | |
Defined in Control.Monad.Morph | |
MFunctor (Backwards :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (ExceptT e :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (IdentityT :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (ReaderT r :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (StateT s :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (StateT s :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (WriterT w :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (WriterT w :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (Product f :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
Functor f => MFunctor (Compose f :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (RWST r w s :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (RWST r w s :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MFunctor (Proxy a' a b' b :: (Type -> Type) -> Type -> Type) Source # | |
Defined in Pipes.Internal |
class (MFunctor t, MonadTrans t) => MMonad (t :: (Type -> Type) -> Type -> Type) where #
Methods
embed :: forall (n :: Type -> Type) m b. Monad n => (forall a. m a -> t n a) -> t m b -> t n b #
Instances
MMonad ListT Source # | |
MMonad MaybeT | |
Defined in Control.Monad.Morph | |
MMonad (ExceptT e) | |
Defined in Control.Monad.Morph | |
MMonad (IdentityT :: (Type -> Type) -> Type -> Type) | |
Defined in Control.Monad.Morph | |
MMonad (ReaderT r) | |
Defined in Control.Monad.Morph | |
Monoid w => MMonad (WriterT w) | |
Defined in Control.Monad.Morph | |
Monoid w => MMonad (WriterT w) | |
Defined in Control.Monad.Morph | |
MMonad (Proxy a' a b' b) Source # | |
class Foldable (t :: Type -> Type) #
Minimal complete definition
foldMap | foldr
Instances
Foldable ZipList | |
Defined in Control.Applicative Methods fold :: Monoid m => ZipList m -> m foldMap :: Monoid m => (a -> m) -> ZipList a -> m foldMap' :: Monoid m => (a -> m) -> ZipList a -> m foldr :: (a -> b -> b) -> b -> ZipList a -> b foldr' :: (a -> b -> b) -> b -> ZipList a -> b foldl :: (b -> a -> b) -> b -> ZipList a -> b foldl' :: (b -> a -> b) -> b -> ZipList a -> b foldr1 :: (a -> a -> a) -> ZipList a -> a foldl1 :: (a -> a -> a) -> ZipList a -> a toList :: ZipList a -> [a] null :: ZipList a -> Bool length :: ZipList a -> Int elem :: Eq a => a -> ZipList a -> Bool maximum :: Ord a => ZipList a -> a minimum :: Ord a => ZipList a -> a sum :: Num a => ZipList a -> a product :: Num a => ZipList a -> a | |
Foldable Identity | |
Defined in Data.Functor.Identity Methods fold :: Monoid m => Identity m -> m foldMap :: Monoid m => (a -> m) -> Identity a -> m foldMap' :: Monoid m => (a -> m) -> Identity a -> m foldr :: (a -> b -> b) -> b -> Identity a -> b foldr' :: (a -> b -> b) -> b -> Identity a -> b foldl :: (b -> a -> b) -> b -> Identity a -> b foldl' :: (b -> a -> b) -> b -> Identity a -> b foldr1 :: (a -> a -> a) -> Identity a -> a foldl1 :: (a -> a -> a) -> Identity a -> a toList :: Identity a -> [a] null :: Identity a -> Bool length :: Identity a -> Int elem :: Eq a => a -> Identity a -> Bool maximum :: Ord a => Identity a -> a minimum :: Ord a => Identity a -> a sum :: Num a => Identity a -> a product :: Num a => Identity a -> a | |
Foldable First | |
Defined in Data.Foldable Methods fold :: Monoid m => First m -> m foldMap :: Monoid m => (a -> m) -> First a -> m foldMap' :: Monoid m => (a -> m) -> First a -> m foldr :: (a -> b -> b) -> b -> First a -> b foldr' :: (a -> b -> b) -> b -> First a -> b foldl :: (b -> a -> b) -> b -> First a -> b foldl' :: (b -> a -> b) -> b -> First a -> b foldr1 :: (a -> a -> a) -> First a -> a foldl1 :: (a -> a -> a) -> First a -> a toList :: First a -> [a] null :: First a -> Bool length :: First a -> Int elem :: Eq a => a -> First a -> Bool maximum :: Ord a => First a -> a minimum :: Ord a => First a -> a sum :: Num a => First a -> a product :: Num a => First a -> a | |
Foldable Last | |
Defined in Data.Foldable Methods fold :: Monoid m => Last m -> m foldMap :: Monoid m => (a -> m) -> Last a -> m foldMap' :: Monoid m => (a -> m) -> Last a -> m foldr :: (a -> b -> b) -> b -> Last a -> b foldr' :: (a -> b -> b) -> b -> Last a -> b foldl :: (b -> a -> b) -> b -> Last a -> b foldl' :: (b -> a -> b) -> b -> Last a -> b foldr1 :: (a -> a -> a) -> Last a -> a foldl1 :: (a -> a -> a) -> Last a -> a toList :: Last a -> [a] null :: Last a -> Bool length :: Last a -> Int elem :: Eq a => a -> Last a -> Bool maximum :: Ord a => Last a -> a minimum :: Ord a => Last a -> a sum :: Num a => Last a -> a product :: Num a => Last a -> a | |
Foldable Down | |
Defined in Data.Foldable Methods fold :: Monoid m => Down m -> m foldMap :: Monoid m => (a -> m) -> Down a -> m foldMap' :: Monoid m => (a -> m) -> Down a -> m foldr :: (a -> b -> b) -> b -> Down a -> b foldr' :: (a -> b -> b) -> b -> Down a -> b foldl :: (b -> a -> b) -> b -> Down a -> b foldl' :: (b -> a -> b) -> b -> Down a -> b foldr1 :: (a -> a -> a) -> Down a -> a foldl1 :: (a -> a -> a) -> Down a -> a toList :: Down a -> [a] null :: Down a -> Bool length :: Down a -> Int elem :: Eq a => a -> Down a -> Bool maximum :: Ord a => Down a -> a minimum :: Ord a => Down a -> a sum :: Num a => Down a -> a product :: Num a => Down a -> a | |
Foldable First | |
Defined in Data.Semigroup Methods fold :: Monoid m => First m -> m foldMap :: Monoid m => (a -> m) -> First a -> m foldMap' :: Monoid m => (a -> m) -> First a -> m foldr :: (a -> b -> b) -> b -> First a -> b foldr' :: (a -> b -> b) -> b -> First a -> b foldl :: (b -> a -> b) -> b -> First a -> b foldl' :: (b -> a -> b) -> b -> First a -> b foldr1 :: (a -> a -> a) -> First a -> a foldl1 :: (a -> a -> a) -> First a -> a toList :: First a -> [a] null :: First a -> Bool length :: First a -> Int elem :: Eq a => a -> First a -> Bool maximum :: Ord a => First a -> a minimum :: Ord a => First a -> a sum :: Num a => First a -> a product :: Num a => First a -> a | |
Foldable Last | |
Defined in Data.Semigroup Methods fold :: Monoid m => Last m -> m foldMap :: Monoid m => (a -> m) -> Last a -> m foldMap' :: Monoid m => (a -> m) -> Last a -> m foldr :: (a -> b -> b) -> b -> Last a -> b foldr' :: (a -> b -> b) -> b -> Last a -> b foldl :: (b -> a -> b) -> b -> Last a -> b foldl' :: (b -> a -> b) -> b -> Last a -> b foldr1 :: (a -> a -> a) -> Last a -> a foldl1 :: (a -> a -> a) -> Last a -> a toList :: Last a -> [a] null :: Last a -> Bool length :: Last a -> Int elem :: Eq a => a -> Last a -> Bool maximum :: Ord a => Last a -> a minimum :: Ord a => Last a -> a sum :: Num a => Last a -> a product :: Num a => Last a -> a | |
Foldable Max | |
Defined in Data.Semigroup Methods fold :: Monoid m => Max m -> m foldMap :: Monoid m => (a -> m) -> Max a -> m foldMap' :: Monoid m => (a -> m) -> Max a -> m foldr :: (a -> b -> b) -> b -> Max a -> b foldr' :: (a -> b -> b) -> b -> Max a -> b foldl :: (b -> a -> b) -> b -> Max a -> b foldl' :: (b -> a -> b) -> b -> Max a -> b foldr1 :: (a -> a -> a) -> Max a -> a foldl1 :: (a -> a -> a) -> Max a -> a toList :: Max a -> [a] null :: Max a -> Bool length :: Max a -> Int elem :: Eq a => a -> Max a -> Bool maximum :: Ord a => Max a -> a minimum :: Ord a => Max a -> a sum :: Num a => Max a -> a product :: Num a => Max a -> a | |
Foldable Min | |
Defined in Data.Semigroup Methods fold :: Monoid m => Min m -> m foldMap :: Monoid m => (a -> m) -> Min a -> m foldMap' :: Monoid m => (a -> m) -> Min a -> m foldr :: (a -> b -> b) -> b -> Min a -> b foldr' :: (a -> b -> b) -> b -> Min a -> b foldl :: (b -> a -> b) -> b -> Min a -> b foldl' :: (b -> a -> b) -> b -> Min a -> b foldr1 :: (a -> a -> a) -> Min a -> a foldl1 :: (a -> a -> a) -> Min a -> a toList :: Min a -> [a] null :: Min a -> Bool length :: Min a -> Int elem :: Eq a => a -> Min a -> Bool maximum :: Ord a => Min a -> a minimum :: Ord a => Min a -> a sum :: Num a => Min a -> a product :: Num a => Min a -> a | |
Foldable Dual | |
Defined in Data.Foldable Methods fold :: Monoid m => Dual m -> m foldMap :: Monoid m => (a -> m) -> Dual a -> m foldMap' :: Monoid m => (a -> m) -> Dual a -> m foldr :: (a -> b -> b) -> b -> Dual a -> b foldr' :: (a -> b -> b) -> b -> Dual a -> b foldl :: (b -> a -> b) -> b -> Dual a -> b foldl' :: (b -> a -> b) -> b -> Dual a -> b foldr1 :: (a -> a -> a) -> Dual a -> a foldl1 :: (a -> a -> a) -> Dual a -> a toList :: Dual a -> [a] null :: Dual a -> Bool length :: Dual a -> Int elem :: Eq a => a -> Dual a -> Bool maximum :: Ord a => Dual a -> a minimum :: Ord a => Dual a -> a sum :: Num a => Dual a -> a product :: Num a => Dual a -> a | |
Foldable Product | |
Defined in Data.Foldable Methods fold :: Monoid m => Product m -> m foldMap :: Monoid m => (a -> m) -> Product a -> m foldMap' :: Monoid m => (a -> m) -> Product a -> m foldr :: (a -> b -> b) -> b -> Product a -> b foldr' :: (a -> b -> b) -> b -> Product a -> b foldl :: (b -> a -> b) -> b -> Product a -> b foldl' :: (b -> a -> b) -> b -> Product a -> b foldr1 :: (a -> a -> a) -> Product a -> a foldl1 :: (a -> a -> a) -> Product a -> a toList :: Product a -> [a] null :: Product a -> Bool length :: Product a -> Int elem :: Eq a => a -> Product a -> Bool maximum :: Ord a => Product a -> a minimum :: Ord a => Product a -> a sum :: Num a => Product a -> a product :: Num a => Product a -> a | |
Foldable Sum | |
Defined in Data.Foldable Methods fold :: Monoid m => Sum m -> m foldMap :: Monoid m => (a -> m) -> Sum a -> m foldMap' :: Monoid m => (a -> m) -> Sum a -> m foldr :: (a -> b -> b) -> b -> Sum a -> b foldr' :: (a -> b -> b) -> b -> Sum a -> b foldl :: (b -> a -> b) -> b -> Sum a -> b foldl' :: (b -> a -> b) -> b -> Sum a -> b foldr1 :: (a -> a -> a) -> Sum a -> a foldl1 :: (a -> a -> a) -> Sum a -> a toList :: Sum a -> [a] null :: Sum a -> Bool length :: Sum a -> Int elem :: Eq a => a -> Sum a -> Bool maximum :: Ord a => Sum a -> a minimum :: Ord a => Sum a -> a sum :: Num a => Sum a -> a product :: Num a => Sum a -> a | |
Foldable NonEmpty | |
Defined in Data.Foldable Methods fold :: Monoid m => NonEmpty m -> m foldMap :: Monoid m => (a -> m) -> NonEmpty a -> m foldMap' :: Monoid m => (a -> m) -> NonEmpty a -> m foldr :: (a -> b -> b) -> b -> NonEmpty a -> b foldr' :: (a -> b -> b) -> b -> NonEmpty a -> b foldl :: (b -> a -> b) -> b -> NonEmpty a -> b foldl' :: (b -> a -> b) -> b -> NonEmpty a -> b foldr1 :: (a -> a -> a) -> NonEmpty a -> a foldl1 :: (a -> a -> a) -> NonEmpty a -> a toList :: NonEmpty a -> [a] null :: NonEmpty a -> Bool length :: NonEmpty a -> Int elem :: Eq a => a -> NonEmpty a -> Bool maximum :: Ord a => NonEmpty a -> a minimum :: Ord a => NonEmpty a -> a sum :: Num a => NonEmpty a -> a product :: Num a => NonEmpty a -> a | |
Foldable Par1 | |
Defined in Data.Foldable Methods fold :: Monoid m => Par1 m -> m foldMap :: Monoid m => (a -> m) -> Par1 a -> m foldMap' :: Monoid m => (a -> m) -> Par1 a -> m foldr :: (a -> b -> b) -> b -> Par1 a -> b foldr' :: (a -> b -> b) -> b -> Par1 a -> b foldl :: (b -> a -> b) -> b -> Par1 a -> b foldl' :: (b -> a -> b) -> b -> Par1 a -> b foldr1 :: (a -> a -> a) -> Par1 a -> a foldl1 :: (a -> a -> a) -> Par1 a -> a toList :: Par1 a -> [a] null :: Par1 a -> Bool length :: Par1 a -> Int elem :: Eq a => a -> Par1 a -> Bool maximum :: Ord a => Par1 a -> a minimum :: Ord a => Par1 a -> a sum :: Num a => Par1 a -> a product :: Num a => Par1 a -> a | |
Foldable Maybe | |
Defined in Data.Foldable Methods fold :: Monoid m => Maybe m -> m foldMap :: Monoid m => (a -> m) -> Maybe a -> m foldMap' :: Monoid m => (a -> m) -> Maybe a -> m foldr :: (a -> b -> b) -> b -> Maybe a -> b foldr' :: (a -> b -> b) -> b -> Maybe a -> b foldl :: (b -> a -> b) -> b -> Maybe a -> b foldl' :: (b -> a -> b) -> b -> Maybe a -> b foldr1 :: (a -> a -> a) -> Maybe a -> a foldl1 :: (a -> a -> a) -> Maybe a -> a toList :: Maybe a -> [a] null :: Maybe a -> Bool length :: Maybe a -> Int elem :: Eq a => a -> Maybe a -> Bool maximum :: Ord a => Maybe a -> a minimum :: Ord a => Maybe a -> a sum :: Num a => Maybe a -> a product :: Num a => Maybe a -> a | |
Foldable Solo | |
Defined in Data.Foldable Methods fold :: Monoid m => Solo m -> m foldMap :: Monoid m => (a -> m) -> Solo a -> m foldMap' :: Monoid m => (a -> m) -> Solo a -> m foldr :: (a -> b -> b) -> b -> Solo a -> b foldr' :: (a -> b -> b) -> b -> Solo a -> b foldl :: (b -> a -> b) -> b -> Solo a -> b foldl' :: (b -> a -> b) -> b -> Solo a -> b foldr1 :: (a -> a -> a) -> Solo a -> a foldl1 :: (a -> a -> a) -> Solo a -> a toList :: Solo a -> [a] null :: Solo a -> Bool length :: Solo a -> Int elem :: Eq a => a -> Solo a -> Bool maximum :: Ord a => Solo a -> a minimum :: Ord a => Solo a -> a sum :: Num a => Solo a -> a product :: Num a => Solo a -> a | |
Foldable List | |
Defined in Data.Foldable Methods fold :: Monoid m => [m] -> m foldMap :: Monoid m => (a -> m) -> [a] -> m foldMap' :: Monoid m => (a -> m) -> [a] -> m foldr :: (a -> b -> b) -> b -> [a] -> b foldr' :: (a -> b -> b) -> b -> [a] -> b foldl :: (b -> a -> b) -> b -> [a] -> b foldl' :: (b -> a -> b) -> b -> [a] -> b foldr1 :: (a -> a -> a) -> [a] -> a foldl1 :: (a -> a -> a) -> [a] -> a toList :: [a] -> [a] null :: [a] -> Bool length :: [a] -> Int elem :: Eq a => a -> [a] -> Bool maximum :: Ord a => [a] -> a minimum :: Ord a => [a] -> a sum :: Num a => [a] -> a product :: Num a => [a] -> a | |
Foldable (Either a) | |
Defined in Data.Foldable Methods fold :: Monoid m => Either a m -> m foldMap :: Monoid m => (a0 -> m) -> Either a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Either a a0 -> m foldr :: (a0 -> b -> b) -> b -> Either a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Either a a0 -> b foldl :: (b -> a0 -> b) -> b -> Either a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Either a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Either a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Either a a0 -> a0 toList :: Either a a0 -> [a0] null :: Either a a0 -> Bool length :: Either a a0 -> Int elem :: Eq a0 => a0 -> Either a a0 -> Bool maximum :: Ord a0 => Either a a0 -> a0 minimum :: Ord a0 => Either a a0 -> a0 sum :: Num a0 => Either a a0 -> a0 product :: Num a0 => Either a a0 -> a0 | |
Foldable (Proxy :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => Proxy m -> m foldMap :: Monoid m => (a -> m) -> Proxy a -> m foldMap' :: Monoid m => (a -> m) -> Proxy a -> m foldr :: (a -> b -> b) -> b -> Proxy a -> b foldr' :: (a -> b -> b) -> b -> Proxy a -> b foldl :: (b -> a -> b) -> b -> Proxy a -> b foldl' :: (b -> a -> b) -> b -> Proxy a -> b foldr1 :: (a -> a -> a) -> Proxy a -> a foldl1 :: (a -> a -> a) -> Proxy a -> a toList :: Proxy a -> [a] null :: Proxy a -> Bool length :: Proxy a -> Int elem :: Eq a => a -> Proxy a -> Bool maximum :: Ord a => Proxy a -> a minimum :: Ord a => Proxy a -> a sum :: Num a => Proxy a -> a product :: Num a => Proxy a -> a | |
Foldable (Arg a) | |
Defined in Data.Semigroup Methods fold :: Monoid m => Arg a m -> m foldMap :: Monoid m => (a0 -> m) -> Arg a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Arg a a0 -> m foldr :: (a0 -> b -> b) -> b -> Arg a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Arg a a0 -> b foldl :: (b -> a0 -> b) -> b -> Arg a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Arg a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 toList :: Arg a a0 -> [a0] null :: Arg a a0 -> Bool length :: Arg a a0 -> Int elem :: Eq a0 => a0 -> Arg a a0 -> Bool maximum :: Ord a0 => Arg a a0 -> a0 minimum :: Ord a0 => Arg a a0 -> a0 sum :: Num a0 => Arg a a0 -> a0 product :: Num a0 => Arg a a0 -> a0 | |
Foldable (Array i) | |
Defined in Data.Foldable Methods fold :: Monoid m => Array i m -> m foldMap :: Monoid m => (a -> m) -> Array i a -> m foldMap' :: Monoid m => (a -> m) -> Array i a -> m foldr :: (a -> b -> b) -> b -> Array i a -> b foldr' :: (a -> b -> b) -> b -> Array i a -> b foldl :: (b -> a -> b) -> b -> Array i a -> b foldl' :: (b -> a -> b) -> b -> Array i a -> b foldr1 :: (a -> a -> a) -> Array i a -> a foldl1 :: (a -> a -> a) -> Array i a -> a toList :: Array i a -> [a] null :: Array i a -> Bool length :: Array i a -> Int elem :: Eq a => a -> Array i a -> Bool maximum :: Ord a => Array i a -> a minimum :: Ord a => Array i a -> a sum :: Num a => Array i a -> a product :: Num a => Array i a -> a | |
Foldable (U1 :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => U1 m -> m foldMap :: Monoid m => (a -> m) -> U1 a -> m foldMap' :: Monoid m => (a -> m) -> U1 a -> m foldr :: (a -> b -> b) -> b -> U1 a -> b foldr' :: (a -> b -> b) -> b -> U1 a -> b foldl :: (b -> a -> b) -> b -> U1 a -> b foldl' :: (b -> a -> b) -> b -> U1 a -> b foldr1 :: (a -> a -> a) -> U1 a -> a foldl1 :: (a -> a -> a) -> U1 a -> a toList :: U1 a -> [a] null :: U1 a -> Bool length :: U1 a -> Int elem :: Eq a => a -> U1 a -> Bool maximum :: Ord a => U1 a -> a minimum :: Ord a => U1 a -> a sum :: Num a => U1 a -> a product :: Num a => U1 a -> a | |
Foldable (UAddr :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UAddr m -> m foldMap :: Monoid m => (a -> m) -> UAddr a -> m foldMap' :: Monoid m => (a -> m) -> UAddr a -> m foldr :: (a -> b -> b) -> b -> UAddr a -> b foldr' :: (a -> b -> b) -> b -> UAddr a -> b foldl :: (b -> a -> b) -> b -> UAddr a -> b foldl' :: (b -> a -> b) -> b -> UAddr a -> b foldr1 :: (a -> a -> a) -> UAddr a -> a foldl1 :: (a -> a -> a) -> UAddr a -> a toList :: UAddr a -> [a] null :: UAddr a -> Bool length :: UAddr a -> Int elem :: Eq a => a -> UAddr a -> Bool maximum :: Ord a => UAddr a -> a minimum :: Ord a => UAddr a -> a sum :: Num a => UAddr a -> a product :: Num a => UAddr a -> a | |
Foldable (UChar :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UChar m -> m foldMap :: Monoid m => (a -> m) -> UChar a -> m foldMap' :: Monoid m => (a -> m) -> UChar a -> m foldr :: (a -> b -> b) -> b -> UChar a -> b foldr' :: (a -> b -> b) -> b -> UChar a -> b foldl :: (b -> a -> b) -> b -> UChar a -> b foldl' :: (b -> a -> b) -> b -> UChar a -> b foldr1 :: (a -> a -> a) -> UChar a -> a foldl1 :: (a -> a -> a) -> UChar a -> a toList :: UChar a -> [a] null :: UChar a -> Bool length :: UChar a -> Int elem :: Eq a => a -> UChar a -> Bool maximum :: Ord a => UChar a -> a minimum :: Ord a => UChar a -> a sum :: Num a => UChar a -> a product :: Num a => UChar a -> a | |
Foldable (UDouble :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UDouble m -> m foldMap :: Monoid m => (a -> m) -> UDouble a -> m foldMap' :: Monoid m => (a -> m) -> UDouble a -> m foldr :: (a -> b -> b) -> b -> UDouble a -> b foldr' :: (a -> b -> b) -> b -> UDouble a -> b foldl :: (b -> a -> b) -> b -> UDouble a -> b foldl' :: (b -> a -> b) -> b -> UDouble a -> b foldr1 :: (a -> a -> a) -> UDouble a -> a foldl1 :: (a -> a -> a) -> UDouble a -> a toList :: UDouble a -> [a] null :: UDouble a -> Bool length :: UDouble a -> Int elem :: Eq a => a -> UDouble a -> Bool maximum :: Ord a => UDouble a -> a minimum :: Ord a => UDouble a -> a sum :: Num a => UDouble a -> a product :: Num a => UDouble a -> a | |
Foldable (UFloat :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UFloat m -> m foldMap :: Monoid m => (a -> m) -> UFloat a -> m foldMap' :: Monoid m => (a -> m) -> UFloat a -> m foldr :: (a -> b -> b) -> b -> UFloat a -> b foldr' :: (a -> b -> b) -> b -> UFloat a -> b foldl :: (b -> a -> b) -> b -> UFloat a -> b foldl' :: (b -> a -> b) -> b -> UFloat a -> b foldr1 :: (a -> a -> a) -> UFloat a -> a foldl1 :: (a -> a -> a) -> UFloat a -> a toList :: UFloat a -> [a] null :: UFloat a -> Bool length :: UFloat a -> Int elem :: Eq a => a -> UFloat a -> Bool maximum :: Ord a => UFloat a -> a minimum :: Ord a => UFloat a -> a sum :: Num a => UFloat a -> a product :: Num a => UFloat a -> a | |
Foldable (UInt :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UInt m -> m foldMap :: Monoid m => (a -> m) -> UInt a -> m foldMap' :: Monoid m => (a -> m) -> UInt a -> m foldr :: (a -> b -> b) -> b -> UInt a -> b foldr' :: (a -> b -> b) -> b -> UInt a -> b foldl :: (b -> a -> b) -> b -> UInt a -> b foldl' :: (b -> a -> b) -> b -> UInt a -> b foldr1 :: (a -> a -> a) -> UInt a -> a foldl1 :: (a -> a -> a) -> UInt a -> a toList :: UInt a -> [a] null :: UInt a -> Bool length :: UInt a -> Int elem :: Eq a => a -> UInt a -> Bool maximum :: Ord a => UInt a -> a minimum :: Ord a => UInt a -> a sum :: Num a => UInt a -> a product :: Num a => UInt a -> a | |
Foldable (UWord :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UWord m -> m foldMap :: Monoid m => (a -> m) -> UWord a -> m foldMap' :: Monoid m => (a -> m) -> UWord a -> m foldr :: (a -> b -> b) -> b -> UWord a -> b foldr' :: (a -> b -> b) -> b -> UWord a -> b foldl :: (b -> a -> b) -> b -> UWord a -> b foldl' :: (b -> a -> b) -> b -> UWord a -> b foldr1 :: (a -> a -> a) -> UWord a -> a foldl1 :: (a -> a -> a) -> UWord a -> a toList :: UWord a -> [a] null :: UWord a -> Bool length :: UWord a -> Int elem :: Eq a => a -> UWord a -> Bool maximum :: Ord a => UWord a -> a minimum :: Ord a => UWord a -> a sum :: Num a => UWord a -> a product :: Num a => UWord a -> a | |
Foldable (V1 :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => V1 m -> m foldMap :: Monoid m => (a -> m) -> V1 a -> m foldMap' :: Monoid m => (a -> m) -> V1 a -> m foldr :: (a -> b -> b) -> b -> V1 a -> b foldr' :: (a -> b -> b) -> b -> V1 a -> b foldl :: (b -> a -> b) -> b -> V1 a -> b foldl' :: (b -> a -> b) -> b -> V1 a -> b foldr1 :: (a -> a -> a) -> V1 a -> a foldl1 :: (a -> a -> a) -> V1 a -> a toList :: V1 a -> [a] null :: V1 a -> Bool length :: V1 a -> Int elem :: Eq a => a -> V1 a -> Bool maximum :: Ord a => V1 a -> a minimum :: Ord a => V1 a -> a sum :: Num a => V1 a -> a product :: Num a => V1 a -> a | |
Foldable m => Foldable (ListT m) Source # | |
Defined in Pipes Methods fold :: Monoid m0 => ListT m m0 -> m0 foldMap :: Monoid m0 => (a -> m0) -> ListT m a -> m0 foldMap' :: Monoid m0 => (a -> m0) -> ListT m a -> m0 foldr :: (a -> b -> b) -> b -> ListT m a -> b foldr' :: (a -> b -> b) -> b -> ListT m a -> b foldl :: (b -> a -> b) -> b -> ListT m a -> b foldl' :: (b -> a -> b) -> b -> ListT m a -> b foldr1 :: (a -> a -> a) -> ListT m a -> a foldl1 :: (a -> a -> a) -> ListT m a -> a elem :: Eq a => a -> ListT m a -> Bool maximum :: Ord a => ListT m a -> a minimum :: Ord a => ListT m a -> a | |
Foldable f => Foldable (Lift f) | |
Defined in Control.Applicative.Lift Methods fold :: Monoid m => Lift f m -> m foldMap :: Monoid m => (a -> m) -> Lift f a -> m foldMap' :: Monoid m => (a -> m) -> Lift f a -> m foldr :: (a -> b -> b) -> b -> Lift f a -> b foldr' :: (a -> b -> b) -> b -> Lift f a -> b foldl :: (b -> a -> b) -> b -> Lift f a -> b foldl' :: (b -> a -> b) -> b -> Lift f a -> b foldr1 :: (a -> a -> a) -> Lift f a -> a foldl1 :: (a -> a -> a) -> Lift f a -> a toList :: Lift f a -> [a] null :: Lift f a -> Bool length :: Lift f a -> Int elem :: Eq a => a -> Lift f a -> Bool maximum :: Ord a => Lift f a -> a minimum :: Ord a => Lift f a -> a sum :: Num a => Lift f a -> a product :: Num a => Lift f a -> a | |
Foldable f => Foldable (MaybeT f) | |
Defined in Control.Monad.Trans.Maybe Methods fold :: Monoid m => MaybeT f m -> m foldMap :: Monoid m => (a -> m) -> MaybeT f a -> m foldMap' :: Monoid m => (a -> m) -> MaybeT f a -> m foldr :: (a -> b -> b) -> b -> MaybeT f a -> b foldr' :: (a -> b -> b) -> b -> MaybeT f a -> b foldl :: (b -> a -> b) -> b -> MaybeT f a -> b foldl' :: (b -> a -> b) -> b -> MaybeT f a -> b foldr1 :: (a -> a -> a) -> MaybeT f a -> a foldl1 :: (a -> a -> a) -> MaybeT f a -> a toList :: MaybeT f a -> [a] null :: MaybeT f a -> Bool length :: MaybeT f a -> Int elem :: Eq a => a -> MaybeT f a -> Bool maximum :: Ord a => MaybeT f a -> a minimum :: Ord a => MaybeT f a -> a sum :: Num a => MaybeT f a -> a product :: Num a => MaybeT f a -> a | |
Foldable ((,) a) | |
Defined in Data.Foldable Methods fold :: Monoid m => (a, m) -> m foldMap :: Monoid m => (a0 -> m) -> (a, a0) -> m foldMap' :: Monoid m => (a0 -> m) -> (a, a0) -> m foldr :: (a0 -> b -> b) -> b -> (a, a0) -> b foldr' :: (a0 -> b -> b) -> b -> (a, a0) -> b foldl :: (b -> a0 -> b) -> b -> (a, a0) -> b foldl' :: (b -> a0 -> b) -> b -> (a, a0) -> b foldr1 :: (a0 -> a0 -> a0) -> (a, a0) -> a0 foldl1 :: (a0 -> a0 -> a0) -> (a, a0) -> a0 toList :: (a, a0) -> [a0] null :: (a, a0) -> Bool length :: (a, a0) -> Int elem :: Eq a0 => a0 -> (a, a0) -> Bool maximum :: Ord a0 => (a, a0) -> a0 minimum :: Ord a0 => (a, a0) -> a0 sum :: Num a0 => (a, a0) -> a0 product :: Num a0 => (a, a0) -> a0 | |
Foldable f => Foldable (Ap f) | |
Defined in Data.Foldable Methods fold :: Monoid m => Ap f m -> m foldMap :: Monoid m => (a -> m) -> Ap f a -> m foldMap' :: Monoid m => (a -> m) -> Ap f a -> m foldr :: (a -> b -> b) -> b -> Ap f a -> b foldr' :: (a -> b -> b) -> b -> Ap f a -> b foldl :: (b -> a -> b) -> b -> Ap f a -> b foldl' :: (b -> a -> b) -> b -> Ap f a -> b foldr1 :: (a -> a -> a) -> Ap f a -> a foldl1 :: (a -> a -> a) -> Ap f a -> a toList :: Ap f a -> [a] null :: Ap f a -> Bool length :: Ap f a -> Int elem :: Eq a => a -> Ap f a -> Bool maximum :: Ord a => Ap f a -> a minimum :: Ord a => Ap f a -> a sum :: Num a => Ap f a -> a product :: Num a => Ap f a -> a | |
Foldable f => Foldable (Alt f) | |
Defined in Data.Foldable Methods fold :: Monoid m => Alt f m -> m foldMap :: Monoid m => (a -> m) -> Alt f a -> m foldMap' :: Monoid m => (a -> m) -> Alt f a -> m foldr :: (a -> b -> b) -> b -> Alt f a -> b foldr' :: (a -> b -> b) -> b -> Alt f a -> b foldl :: (b -> a -> b) -> b -> Alt f a -> b foldl' :: (b -> a -> b) -> b -> Alt f a -> b foldr1 :: (a -> a -> a) -> Alt f a -> a foldl1 :: (a -> a -> a) -> Alt f a -> a toList :: Alt f a -> [a] null :: Alt f a -> Bool length :: Alt f a -> Int elem :: Eq a => a -> Alt f a -> Bool maximum :: Ord a => Alt f a -> a minimum :: Ord a => Alt f a -> a sum :: Num a => Alt f a -> a product :: Num a => Alt f a -> a | |
Foldable f => Foldable (Rec1 f) | |
Defined in Data.Foldable Methods fold :: Monoid m => Rec1 f m -> m foldMap :: Monoid m => (a -> m) -> Rec1 f a -> m foldMap' :: Monoid m => (a -> m) -> Rec1 f a -> m foldr :: (a -> b -> b) -> b -> Rec1 f a -> b foldr' :: (a -> b -> b) -> b -> Rec1 f a -> b foldl :: (b -> a -> b) -> b -> Rec1 f a -> b foldl' :: (b -> a -> b) -> b -> Rec1 f a -> b foldr1 :: (a -> a -> a) -> Rec1 f a -> a foldl1 :: (a -> a -> a) -> Rec1 f a -> a toList :: Rec1 f a -> [a] null :: Rec1 f a -> Bool length :: Rec1 f a -> Int elem :: Eq a => a -> Rec1 f a -> Bool maximum :: Ord a => Rec1 f a -> a minimum :: Ord a => Rec1 f a -> a sum :: Num a => Rec1 f a -> a product :: Num a => Rec1 f a -> a | |
Foldable f => Foldable (Backwards f) | |
Defined in Control.Applicative.Backwards Methods fold :: Monoid m => Backwards f m -> m foldMap :: Monoid m => (a -> m) -> Backwards f a -> m foldMap' :: Monoid m => (a -> m) -> Backwards f a -> m foldr :: (a -> b -> b) -> b -> Backwards f a -> b foldr' :: (a -> b -> b) -> b -> Backwards f a -> b foldl :: (b -> a -> b) -> b -> Backwards f a -> b foldl' :: (b -> a -> b) -> b -> Backwards f a -> b foldr1 :: (a -> a -> a) -> Backwards f a -> a foldl1 :: (a -> a -> a) -> Backwards f a -> a toList :: Backwards f a -> [a] null :: Backwards f a -> Bool length :: Backwards f a -> Int elem :: Eq a => a -> Backwards f a -> Bool maximum :: Ord a => Backwards f a -> a minimum :: Ord a => Backwards f a -> a sum :: Num a => Backwards f a -> a product :: Num a => Backwards f a -> a | |
Foldable f => Foldable (ExceptT e f) | |
Defined in Control.Monad.Trans.Except Methods fold :: Monoid m => ExceptT e f m -> m foldMap :: Monoid m => (a -> m) -> ExceptT e f a -> m foldMap' :: Monoid m => (a -> m) -> ExceptT e f a -> m foldr :: (a -> b -> b) -> b -> ExceptT e f a -> b foldr' :: (a -> b -> b) -> b -> ExceptT e f a -> b foldl :: (b -> a -> b) -> b -> ExceptT e f a -> b foldl' :: (b -> a -> b) -> b -> ExceptT e f a -> b foldr1 :: (a -> a -> a) -> ExceptT e f a -> a foldl1 :: (a -> a -> a) -> ExceptT e f a -> a toList :: ExceptT e f a -> [a] null :: ExceptT e f a -> Bool length :: ExceptT e f a -> Int elem :: Eq a => a -> ExceptT e f a -> Bool maximum :: Ord a => ExceptT e f a -> a minimum :: Ord a => ExceptT e f a -> a sum :: Num a => ExceptT e f a -> a product :: Num a => ExceptT e f a -> a | |
Foldable f => Foldable (IdentityT f) | |
Defined in Control.Monad.Trans.Identity Methods fold :: Monoid m => IdentityT f m -> m foldMap :: Monoid m => (a -> m) -> IdentityT f a -> m foldMap' :: Monoid m => (a -> m) -> IdentityT f a -> m foldr :: (a -> b -> b) -> b -> IdentityT f a -> b foldr' :: (a -> b -> b) -> b -> IdentityT f a -> b foldl :: (b -> a -> b) -> b -> IdentityT f a -> b foldl' :: (b -> a -> b) -> b -> IdentityT f a -> b foldr1 :: (a -> a -> a) -> IdentityT f a -> a foldl1 :: (a -> a -> a) -> IdentityT f a -> a toList :: IdentityT f a -> [a] null :: IdentityT f a -> Bool length :: IdentityT f a -> Int elem :: Eq a => a -> IdentityT f a -> Bool maximum :: Ord a => IdentityT f a -> a minimum :: Ord a => IdentityT f a -> a sum :: Num a => IdentityT f a -> a product :: Num a => IdentityT f a -> a | |
Foldable f => Foldable (WriterT w f) | |
Defined in Control.Monad.Trans.Writer.Lazy Methods fold :: Monoid m => WriterT w f m -> m foldMap :: Monoid m => (a -> m) -> WriterT w f a -> m foldMap' :: Monoid m => (a -> m) -> WriterT w f a -> m foldr :: (a -> b -> b) -> b -> WriterT w f a -> b foldr' :: (a -> b -> b) -> b -> WriterT w f a -> b foldl :: (b -> a -> b) -> b -> WriterT w f a -> b foldl' :: (b -> a -> b) -> b -> WriterT w f a -> b foldr1 :: (a -> a -> a) -> WriterT w f a -> a foldl1 :: (a -> a -> a) -> WriterT w f a -> a toList :: WriterT w f a -> [a] null :: WriterT w f a -> Bool length :: WriterT w f a -> Int elem :: Eq a => a -> WriterT w f a -> Bool maximum :: Ord a => WriterT w f a -> a minimum :: Ord a => WriterT w f a -> a sum :: Num a => WriterT w f a -> a product :: Num a => WriterT w f a -> a | |
Foldable f => Foldable (WriterT w f) | |
Defined in Control.Monad.Trans.Writer.Strict Methods fold :: Monoid m => WriterT w f m -> m foldMap :: Monoid m => (a -> m) -> WriterT w f a -> m foldMap' :: Monoid m => (a -> m) -> WriterT w f a -> m foldr :: (a -> b -> b) -> b -> WriterT w f a -> b foldr' :: (a -> b -> b) -> b -> WriterT w f a -> b foldl :: (b -> a -> b) -> b -> WriterT w f a -> b foldl' :: (b -> a -> b) -> b -> WriterT w f a -> b foldr1 :: (a -> a -> a) -> WriterT w f a -> a foldl1 :: (a -> a -> a) -> WriterT w f a -> a toList :: WriterT w f a -> [a] null :: WriterT w f a -> Bool length :: WriterT w f a -> Int elem :: Eq a => a -> WriterT w f a -> Bool maximum :: Ord a => WriterT w f a -> a minimum :: Ord a => WriterT w f a -> a sum :: Num a => WriterT w f a -> a product :: Num a => WriterT w f a -> a | |
Foldable (Constant a :: Type -> Type) | |
Defined in Data.Functor.Constant Methods fold :: Monoid m => Constant a m -> m foldMap :: Monoid m => (a0 -> m) -> Constant a a0 -> m foldMap' :: Monoid m => (a0 -> m) -> Constant a a0 -> m foldr :: (a0 -> b -> b) -> b -> Constant a a0 -> b foldr' :: (a0 -> b -> b) -> b -> Constant a a0 -> b foldl :: (b -> a0 -> b) -> b -> Constant a a0 -> b foldl' :: (b -> a0 -> b) -> b -> Constant a a0 -> b foldr1 :: (a0 -> a0 -> a0) -> Constant a a0 -> a0 foldl1 :: (a0 -> a0 -> a0) -> Constant a a0 -> a0 toList :: Constant a a0 -> [a0] null :: Constant a a0 -> Bool length :: Constant a a0 -> Int elem :: Eq a0 => a0 -> Constant a a0 -> Bool maximum :: Ord a0 => Constant a a0 -> a0 minimum :: Ord a0 => Constant a a0 -> a0 sum :: Num a0 => Constant a a0 -> a0 product :: Num a0 => Constant a a0 -> a0 | |
(Foldable f, Foldable g) => Foldable (f :*: g) | |
Defined in Data.Foldable Methods fold :: Monoid m => (f :*: g) m -> m foldMap :: Monoid m => (a -> m) -> (f :*: g) a -> m foldMap' :: Monoid m => (a -> m) -> (f :*: g) a -> m foldr :: (a -> b -> b) -> b -> (f :*: g) a -> b foldr' :: (a -> b -> b) -> b -> (f :*: g) a -> b foldl :: (b -> a -> b) -> b -> (f :*: g) a -> b foldl' :: (b -> a -> b) -> b -> (f :*: g) a -> b foldr1 :: (a -> a -> a) -> (f :*: g) a -> a foldl1 :: (a -> a -> a) -> (f :*: g) a -> a toList :: (f :*: g) a -> [a] null :: (f :*: g) a -> Bool length :: (f :*: g) a -> Int elem :: Eq a => a -> (f :*: g) a -> Bool maximum :: Ord a => (f :*: g) a -> a minimum :: Ord a => (f :*: g) a -> a sum :: Num a => (f :*: g) a -> a product :: Num a => (f :*: g) a -> a | |
(Foldable f, Foldable g) => Foldable (f :+: g) | |
Defined in Data.Foldable Methods fold :: Monoid m => (f :+: g) m -> m foldMap :: Monoid m => (a -> m) -> (f :+: g) a -> m foldMap' :: Monoid m => (a -> m) -> (f :+: g) a -> m foldr :: (a -> b -> b) -> b -> (f :+: g) a -> b foldr' :: (a -> b -> b) -> b -> (f :+: g) a -> b foldl :: (b -> a -> b) -> b -> (f :+: g) a -> b foldl' :: (b -> a -> b) -> b -> (f :+: g) a -> b foldr1 :: (a -> a -> a) -> (f :+: g) a -> a foldl1 :: (a -> a -> a) -> (f :+: g) a -> a toList :: (f :+: g) a -> [a] null :: (f :+: g) a -> Bool length :: (f :+: g) a -> Int elem :: Eq a => a -> (f :+: g) a -> Bool maximum :: Ord a => (f :+: g) a -> a minimum :: Ord a => (f :+: g) a -> a sum :: Num a => (f :+: g) a -> a product :: Num a => (f :+: g) a -> a | |
Foldable (K1 i c :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => K1 i c m -> m foldMap :: Monoid m => (a -> m) -> K1 i c a -> m foldMap' :: Monoid m => (a -> m) -> K1 i c a -> m foldr :: (a -> b -> b) -> b -> K1 i c a -> b foldr' :: (a -> b -> b) -> b -> K1 i c a -> b foldl :: (b -> a -> b) -> b -> K1 i c a -> b foldl' :: (b -> a -> b) -> b -> K1 i c a -> b foldr1 :: (a -> a -> a) -> K1 i c a -> a foldl1 :: (a -> a -> a) -> K1 i c a -> a toList :: K1 i c a -> [a] null :: K1 i c a -> Bool length :: K1 i c a -> Int elem :: Eq a => a -> K1 i c a -> Bool maximum :: Ord a => K1 i c a -> a minimum :: Ord a => K1 i c a -> a sum :: Num a => K1 i c a -> a product :: Num a => K1 i c a -> a | |
(Foldable f, Foldable g) => Foldable (f :.: g) | |
Defined in Data.Foldable Methods fold :: Monoid m => (f :.: g) m -> m foldMap :: Monoid m => (a -> m) -> (f :.: g) a -> m foldMap' :: Monoid m => (a -> m) -> (f :.: g) a -> m foldr :: (a -> b -> b) -> b -> (f :.: g) a -> b foldr' :: (a -> b -> b) -> b -> (f :.: g) a -> b foldl :: (b -> a -> b) -> b -> (f :.: g) a -> b foldl' :: (b -> a -> b) -> b -> (f :.: g) a -> b foldr1 :: (a -> a -> a) -> (f :.: g) a -> a foldl1 :: (a -> a -> a) -> (f :.: g) a -> a toList :: (f :.: g) a -> [a] null :: (f :.: g) a -> Bool length :: (f :.: g) a -> Int elem :: Eq a => a -> (f :.: g) a -> Bool maximum :: Ord a => (f :.: g) a -> a minimum :: Ord a => (f :.: g) a -> a sum :: Num a => (f :.: g) a -> a product :: Num a => (f :.: g) a -> a | |
Foldable f => Foldable (M1 i c f) | |
Defined in Data.Foldable Methods fold :: Monoid m => M1 i c f m -> m foldMap :: Monoid m => (a -> m) -> M1 i c f a -> m foldMap' :: Monoid m => (a -> m) -> M1 i c f a -> m foldr :: (a -> b -> b) -> b -> M1 i c f a -> b foldr' :: (a -> b -> b) -> b -> M1 i c f a -> b foldl :: (b -> a -> b) -> b -> M1 i c f a -> b foldl' :: (b -> a -> b) -> b -> M1 i c f a -> b foldr1 :: (a -> a -> a) -> M1 i c f a -> a foldl1 :: (a -> a -> a) -> M1 i c f a -> a toList :: M1 i c f a -> [a] null :: M1 i c f a -> Bool length :: M1 i c f a -> Int elem :: Eq a => a -> M1 i c f a -> Bool maximum :: Ord a => M1 i c f a -> a minimum :: Ord a => M1 i c f a -> a sum :: Num a => M1 i c f a -> a product :: Num a => M1 i c f a -> a |