@hackage multi-trie0.1

Trie of sets, as a model for compound names having multiple values

A multi-trie is a trie (i.e. a tree whose child nodes have distinct labels) with each node containing a list of values. This data structure represents a structured many-valued naming: names are compound and form a monoid under concatenation; each name can have multiple values. Some operations could be defined for multi-tries in a rather natural way, including map, union, intersection, cartesian product. Moreover, a multi-trie can contain not only ordinary values but also functions that makes it possible to apply a multi-trie of functions to a multi-trie of argument values. This makes MultiTrie an instance of Functor, Applicative and Monad.