rel8-internal
Safe HaskellSafe-Inferred
LanguageHaskell2010

Rel8.Internal.Aggregate.Fold

Synopsis

Documentation

data Fallback (fold :: Fold) a where Source #

Constructors

Fallback :: forall a (fold :: Fold). !a -> Fallback fold a 
Empty :: forall a. Fallback 'Semi a 

Instances

Instances details
Applicative (Fallback fold) Source # 
Instance details

Defined in Rel8.Internal.Aggregate.Fold

Methods

pure :: a -> Fallback fold a #

(<*>) :: Fallback fold (a -> b) -> Fallback fold a -> Fallback fold b #

liftA2 :: (a -> b -> c) -> Fallback fold a -> Fallback fold b -> Fallback fold c #

(*>) :: Fallback fold a -> Fallback fold b -> Fallback fold b #

(<*) :: Fallback fold a -> Fallback fold b -> Fallback fold a #

Functor (Fallback fold) Source # 
Instance details

Defined in Rel8.Internal.Aggregate.Fold

Methods

fmap :: (a -> b) -> Fallback fold a -> Fallback fold b #

(<$) :: a -> Fallback fold b -> Fallback fold a #

Apply (Fallback fold) Source # 
Instance details

Defined in Rel8.Internal.Aggregate.Fold

Methods

(<.>) :: Fallback fold (a -> b) -> Fallback fold a -> Fallback fold b

(.>) :: Fallback fold a -> Fallback fold b -> Fallback fold b

(<.) :: Fallback fold a -> Fallback fold b -> Fallback fold a

liftF2 :: (a -> b -> c) -> Fallback fold a -> Fallback fold b -> Fallback fold c

data Fold Source #

Fold is a kind that parameterises aggregations. Aggregations parameterised by Semi are analogous to foldMap1 (i.e, they can only produce results on a non-empty Query) whereas aggregations parameterised by Full are analagous to foldMap (given a non-empty) query, they return the identity values of the aggregation functions.

Constructors

Semi 
Full