| License | BSD-like (see LICENSE) |
|---|---|
| Maintainer | Brent Yorgey <byorgey@cis.upenn.edu>, Stephanie Weirich <sweirich@cis.upenn.edu> |
| Portability | GHC only (-XKitchenSink) |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Unbound.Util
Description
Various utilities for the Unbound library.
Documentation
class Foldable f => Collection f where Source #
Collections are foldable types that support empty, singleton, union, and map operations. The result of a free variable calculation may be any collection. Instances are provided for lists, sets, and multisets.
Methods
An empty collection. Must be the identity for union.
singleton :: a -> f a Source #
Create a singleton collection.
union :: Ord a => f a -> f a -> f a Source #
An associative combining operation. The Ord constraint is in
order to accommodate sets.
cmap :: (Ord a, Ord b) => (a -> b) -> f a -> f b Source #
Collections must be functorial. The normal Functor class
won't do because of the Ord constraint on sets.
Instances
| Collection [] Source # | Lists are containers under concatenation. Lists preserve ordering and multiplicity of elements. |
| Collection Set Source # | Sets are containers under union, which preserve only occurrence, not multiplicity or ordering. |
| Collection Multiset Source # | Multisets are containers which preserve multiplicity but not ordering. |
unions :: (Ord a, Collection f) => [f a] -> f a Source #
Combine a list of containers into one.
fromList :: (Ord a, Collection f) => [a] -> f a Source #
Create a collection from a list of elements.
filterC :: (Collection f, Ord a) => f (Maybe a) -> f a Source #
Remove the Nothings from a collection.
A simple representation of multisets.