enumeration: A practical API for building recursive enumeration procedures and enumerating datatypes.
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.
Downloads
- enumeration-0.2.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0, 0.2.0 |
---|---|
Dependencies | arith-encode, base (>=4.9.0 && <5), binary, containers, heap, integer-logarithms [details] |
Tested with | ghc ==8.8.1, ghc ==8.6.5, ghc ==8.4.4, ghc ==8.2.2, ghc ==8.0.2 |
License | BSD-3-Clause |
Copyright | Copyright (c) 2014 Eric McCorkle. All rights reserved. |
Author | Eric McCorkle |
Maintainer | Eric McCorkle <emc2@metricspace.net>, Andrew Lelechenko <andrew.lelechenko@gmail.com> |
Category | Data, Serialization, Test, Testing |
Home page | https://github.com/emc2/enumeration |
Bug tracker | https://github.com/emc2/enumeration/issues |
Source repo | head: git clone git@github.com:Bodigrim/enumeration.git |
Uploaded | by Bodigrim at 2019-12-21T13:16:01Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 3753 total (18 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2019-12-21 [all 1 reports] |