enumeration-0.2.0: enumeration.cabal
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 <emc2@metricspace.net>, Andrew Lelechenko <andrew.lelechenko@gmail.com>
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