foldl-1.4.14: Composable, streaming, and efficient left folds
Safe Haskell Safe-Inferred
Language Haskell2010

Control.Foldl.NonEmpty

Description

This module provides a Fold1 type that is a "non-empty" analog of the Fold type, meaning that it requires at least one input element in order to produce a result

This module does not provide all of the same utilities as the Control.Foldl module. Instead, this module only provides the utilities which can make use of the non-empty input guarantee (e.g. head ). For all other utilities you can convert them from the equivalent Fold using fromFold .

Synopsis

Documentation

data Fold1 a b Source #

A Fold1 is like a Fold except that it consumes at least one input element

Constructors

Fold1 (a -> Fold a b)

Instances

Instances details
Profunctor Fold1 Source #
Instance details

Defined in Control.Foldl.NonEmpty

Methods

dimap :: (a -> b) -> (c -> d) -> Fold1 b c -> Fold1 a d Source #

lmap :: (a -> b) -> Fold1 b c -> Fold1 a c Source #

rmap :: (b -> c) -> Fold1 a b -> Fold1 a c Source #

(#.) :: forall a b c q. Coercible c b => q b c -> Fold1 a b -> Fold1 a c Source #

(.#) :: forall a b c q. Coercible b a => Fold1 b c -> q a b -> Fold1 a c Source #

Functor ( Fold1 a) Source #
Instance details

Defined in Control.Foldl.NonEmpty

Methods

fmap :: (a0 -> b) -> Fold1 a a0 -> Fold1 a b Source #

(<$) :: a0 -> Fold1 a b -> Fold1 a a0 Source #

Applicative ( Fold1 a) Source #
Instance details

Defined in Control.Foldl.NonEmpty

Floating b => Floating ( Fold1 a b) Source #
Instance details

Defined in Control.Foldl.NonEmpty

Fractional b => Fractional ( Fold1 a b) Source #
Instance details

Defined in Control.Foldl.NonEmpty

Num b => Num ( Fold1 a b) Source #
Instance details

Defined in Control.Foldl.NonEmpty

Semigroup b => Semigroup ( Fold1 a b) Source #
Instance details

Defined in Control.Foldl.NonEmpty

Monoid b => Monoid ( Fold1 a b) Source #
Instance details

Defined in Control.Foldl.NonEmpty

fold1 :: Foldable1 f => Fold1 a b -> f a -> b Source #

Apply a strict left Fold1 to a NonEmpty list

fromFold :: Fold a b -> Fold1 a b Source #

Promote any Fold to an equivalent Fold1

toFold :: Fold1 a b -> Fold a ( Maybe b) Source #

Promote any Fold1 to an equivalent Fold

nonEmpty :: Fold1 a ( NonEmpty a) Source #

Fold all values within a non-empty container into a NonEmpty list

sconcat :: Semigroup a => Fold1 a a Source #

Fold all values within a non-empty container using ( <> )

head :: Fold1 a a Source #

Get the first element of a non-empty container

last :: Fold1 a a Source #

Get the last element of a non-empty container

maximum :: Ord a => Fold1 a a Source #

Computes the maximum element

maximumBy :: (a -> a -> Ordering ) -> Fold1 a a Source #

Computes the maximum element with respect to the given comparison function

minimum :: Ord a => Fold1 a a Source #

Computes the minimum element

minimumBy :: (a -> a -> Ordering ) -> Fold1 a a Source #

Computes the minimum element with respect to the given comparison function