unbound-0.2: Generic support for programming with names and binders

Unbound.Util

Synopsis

Documentation

(<>) :: Monoid m => m -> m -> mSource

class Foldable f => Collection f whereSource

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 and sets.

Methods

emptyC :: f aSource

singleton :: a -> f aSource

union :: Ord a => f a -> f a -> f aSource

cmap :: (Ord a, Ord b) => (a -> b) -> f a -> f bSource

Instances

Collection []

Lists are containers under concatenation. Lists preserve ordering and multiplicity of elements.

Collection Set

Sets are containers under union, which preserve only occurrence, not multiplicity or ordering.

Collection Multiset

Multisets are containers which preserve multiplicity but not ordering.

unions :: (Ord a, Collection f) => [f a] -> f aSource

Combine a list of containers into one.

fromList :: (Ord a, Collection f) => [a] -> f aSource

Create a collection from a list of elements.

filterC :: (Collection f, Ord a) => f (Maybe a) -> f aSource

Remove the Nothings from a collection.

newtype Multiset a Source

A simple representation of multisets.

Constructors

Multiset (Map a Int) 

Instances

Foldable Multiset 
Collection Multiset

Multisets are containers which preserve multiplicity but not ordering.