ListLike-4.6: Generic support for list-like structures

CopyrightCopyright (C) 2007 John Goerzen
LicenseBSD3
MaintainerJohn Lato <jwlato@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Data.ListLike.Utils

Description

Utilities for ListLike and friends. More functions similar to List but not part of the main typeclass.

Written by John Goerzen, jgoerzen@complete.org

Synopsis

Documentation

and :: ListLike full Bool => full -> Bool Source #

Returns True if all elements are True

or :: ListLike full Bool => full -> Bool Source #

Returns True if any element is True

sum :: (Num a, ListLike full a) => full -> a Source #

The sum of the list

product :: (Num a, ListLike full a) => full -> a Source #

The product of the list

zip :: (ListLike full item, ListLike fullb itemb, ListLike result (item, itemb)) => full -> fullb -> result Source #

Takes two lists and returns a list of corresponding pairs.

zipWith :: (ListLike full item, ListLike fullb itemb, ListLike result resultitem) => (item -> itemb -> resultitem) -> full -> fullb -> result Source #

Takes two lists and combines them with a custom combining function

unzip :: (ListLike full (itema, itemb), ListLike ra itema, ListLike rb itemb) => full -> (ra, rb) Source #

Converts a list of pairs into two separate lists of elements

sequence_ :: (Monad m, FoldableLL full (m item)) => full -> m () Source #

Evaluate each action, ignoring the results. Same as mapM_ id.

toMonadPlus :: (MonadPlus m, ListLike full a) => full -> m (a, full) Source #

Converts to a MonadPlus instance

list :: ListLike full a => b -> (a -> full -> b) -> full -> b Source #

List-like destructor (like Data.Maybe.maybe)

intercalate :: (ListLike a item, ListLike b a) => a -> b -> a Source #

intercalate xs xss is equivalent to (concat (intersperse xs xss)). It inserts the list xs in between the lists in xss and concatenates the result.