name: enumeration version: 0.2.0 cabal-version: >=1.16 license: BSD3 license-file: LICENSE copyright: Copyright (c) 2014 Eric McCorkle. All rights reserved. maintainer: Eric McCorkle , Andrew Lelechenko author: Eric McCorkle stability: Beta homepage: https://github.com/emc2/enumeration bug-reports: https://github.com/emc2/enumeration/issues synopsis: A practical API for building recursive enumeration procedures and enumerating datatypes. description: A library providing tools for building enumeration procedures for recursively- enumerable datatypes. This is built atop the arith-encode library, and makes use of the natural number isomorphisms it provides to represent individual decisions in the enumeration procedure. As such, each enumeration result is denoted by a unique path, consisting of a sequence of natural numbers. An enumeration procedure is simply a (partial) mapping between sequences and a given datatype. . The library provides functionality for constructing enumeration procedures, as well as facilities for performing enumeration according to various search strategies (depth-first, breadth-first, etc). These procedures can also be "warm-started" using a path or a set of paths. Obvious applications include exhaustive search, testing, automated proving, and others. . Additionally, as a path is simply a sequence of natural numbers, an enumeration procedure can double as a binary serializer/deserializer. For well-behaved enumeration procedures (ie. those where the mapping is an isomorphism), the resulting binary format should be very nearly succinct. category: Data, Serialization, Test, Testing build-type: Simple tested-with: GHC==8.8.1, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2 source-repository head type: git location: git@github.com:Bodigrim/enumeration.git library exposed-modules: Data.Enumeration Data.Enumeration.Binary Data.Enumeration.Traversal hs-source-dirs: src other-modules: Data.Enumeration.Traversal.Class default-language: Haskell2010 build-depends: base >=4.9.0 && <5, arith-encode, binary, containers, heap, integer-logarithms test-suite UnitTest type: exitcode-stdio-1.0 main-is: UnitTest.hs other-modules: Tests.Data Tests.Data.Enumeration Tests.Data.Enumeration.Binary Tests.Data.Enumeration.Traversal hs-source-dirs: test default-language: Haskell2010 build-depends: base >=4.9.0 && <5, arith-encode, binary, enumeration, HUnit-Plus