Name:                 unfoldable
Version:              1.0
Synopsis:             Class of data structures that can be unfolded.
Description:          Just as there's a Foldable class, there should also be an Unfoldable class.
                      .
                      This package provides one. Example unfolds are:
                      .
                      * Random values
                      .
                      * Enumeration of all values (depth-first or breadth-first)
                      .
                      * Convert from a list
                      .
                      Some examples can be found in the examples directory.
Homepage:             https://github.com/sjoerdvisscher/unfoldable
Bug-reports:          https://github.com/sjoerdvisscher/unfoldable/issues
License:              BSD3
License-file:         LICENSE
Author:               Sjoerd Visscher
Maintainer:           sjoerd@w3future.com
Category:             Generics
Build-type:           Simple
Cabal-version:        >= 1.6

Extra-Source-Files:
  CHANGELOG.md
  examples/*.hs
  src/Data/Triunfoldable.hs

Library
  HS-Source-Dirs:  src

  Exposed-modules:
    Data.Unfolder
    Data.Unfoldable
    Data.Biunfoldable

  Build-depends:
      base         >= 4   && < 5
    , containers   >= 0.5 && < 0.7
    , transformers >= 0.4 && < 0.6
    , random       >= 1.0 && < 1.2
    , QuickCheck   >= 2.7.3 && < 3.0

  if impl(ghc >= 7.6)
    cpp-options:   -DGENERICS
    build-depends:
        ghc-prim     >= 0.2
      , one-liner    >= 0.9 && < 2.0

  Other-extensions:
      GeneralizedNewtypeDeriving
    , RankNTypes
    , Safe
    , Trustworthy
    , CPP

source-repository head
  type:     git
  location: git://github.com/sjoerdvisscher/unfoldable.git