packages feed

multi-trie-0.1: multi-trie.cabal

name:            multi-trie
version:         0.1
cabal-version:   >=1.8
build-type:      Simple
author:          Vadim Vinnik <vadim.vinnik@gmail.com>
maintainer:      Vadim Vinnik <vadim.vinnik@gmail.com>
synopsis:        Trie of sets, as a model for compound names having multiple values
homepage:        https://github.com/vadimvinnik/multi-trie
category:        Data
copyright:       Vadim Vinnik, 2016
license:         MIT
license-file:    LICENSE
extra-doc-files: tex/multi-trie.tex
description:
    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'.

source-repository head
  type:      Git
  location:  https://github.com/vadimvinnik/multi-trie

library
  build-depends:    
                    base == 4.*,
                    containers,
                    composition >= 1.0.2.1
  hs-source-dirs:   src/
  ghc-options:      -Wall
  exposed-modules:  Data.MultiTrie

test-suite Spec
  type:            exitcode-stdio-1.0
  main-is:         Spec.hs
  ghc-options:     -Wall -rtsopts
  build-depends:   
                   base >= 4,
                   HTF > 0.9,
                   multi-trie,
                   containers
  other-modules:   MultiTrieTest
  hs-source-dirs:  tests