pipes-ordered-zip-1.2.0: merge two ordered Producers into a new Producer
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pipes.OrderedZip

Description

A function to tie together two sorted Haskell Iterators

Synopsis

Documentation

orderedZip Source #

Arguments

:: Monad m 
=> (a -> b -> Ordering)

The function to compare types of a with b

-> Producer a m r1

The first producer (assumed to be ordered)

-> Producer b m r2

The second producer (assumed to be ordered)

-> Producer (Maybe a, Maybe b) m (r1, r2)

The merged producer

orderedZip takes a comparison function and two producers and merges them together, creating a new Producer that yields pairs of Maybes of the two datatables provided by the two original producers. The output pairs reflect the Union of the two input producers, with Nothings indicating missing data in one of the producers at that location.

orderedZipAll Source #

Arguments

:: Monad m 
=> (a -> a -> Ordering)

The function to compare types of a with itself

-> [Producer a m r]

A list of producers (have to be ordered)

-> Producer [Maybe a] m [r]

The merged producer

orderedZipAll takes a comparison function and a list of producers and merges them together, creating a new Producer that yields lists of Maybes of the input data type provided by the original producers. The output list reflects the Union of all input producers, with Nothings indicating missing data in any of the producers at that instance.

orderCheckPipe Source #

Arguments

:: (MonadIO m, MonadSafe m, Show a) 
=> (a -> a -> Ordering)

the custom ordering function

-> Pipe a a m r

the resulting pipe