ListLike-4.7.5: Generalized support for list-like structures
CopyrightCopyright (C) 2007 John Goerzen
LicenseBSD3
MaintainerDavid Fox <dsf@seereason.com>, Andreas Abel
Stabilitystable
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

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.