this repo has no description
1opam-version: "2.0"
2maintainer: "Didier Le Botlan <github.lebotlan@dfgh.net>"
3authors: "Didier Le Botlan <github.lebotlan@dfgh.net>"
4homepage: "https://github.com/lebotlan/ocaml-exenum"
5bug-reports: "https://github.com/lebotlan/ocaml-exenum/issues"
6license: "MIT"
7dev-repo: "git+https://github.com/lebotlan/ocaml-exenum.git"
8build: ["jbuilder" "build" "-p" name "-j" jobs]
9depends: ["ocaml" "ocamlfind" "jbuilder" {>= "1.0+beta7"} "zarith"]
10depopts: "lwt"
11conflicts: [
12 "lwt" {>= "4.0.0"}
13]
14synopsis:
15 "Build efficient enumerations for datatypes. Inspired by Feat for Haskell."
16description: """
17The exenum library offers constructors to build enumerations for
18datatypes, that is, functions from (arbitrarily large) integers to
19values. Such enumerations are typically used for unit testing. The
20library is efficient: the n-th element of an enumeration is returned
21without having computed the (n-1) previous elements. Complexity is in
22log(n), except for some pathological datatypes. See the homepage for
23details: https://github.com/lebotlan/ocaml-exenum
24Inspired by Feat: Functional Enumeration of Algebraic Types, by
25Duregard, Jansson, Wang, Chalmers University.
26
27As an example, consider the following datatype:
28type term = Var of string | App of term * term | Lambda of string * term
29
30Using exenum, one may easily generate zillions of different
31lambda-terms. In our specific example, term number 2000000000000
32happens to be
33((((x v) (fun u -> y)) ((fun u -> y) (fun y -> y))) (((x
34v) (fun u -> v)) (fun u -> y)))"""
35url {
36 src: "https://github.com/lebotlan/ocaml-exenum/archive/v0.84.0.tar.gz"
37 checksum: [
38 "sha256=d1d0f10e592895ecce69fe31cacd7572077dff4f960a6f16d223f56274be4a8f"
39 "md5=f4d7c0bf20a74918f68919ff28739b4f"
40 ]
41}