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: [
9 ["dune" "subst"] {dev}
10 ["dune" "build" "-p" name "-j" jobs]
11]
12depends: [
13 "ocaml" {>= "4.02.3"}
14 "dune"
15 "zarith"
16]
17depopts: "lwt"
18conflicts: [
19 "lwt" {>= "4.0.0"}
20]
21synopsis:
22 "Build efficient enumerations for datatypes. Inspired by Feat for Haskell."
23description: """
24The exenum library offers constructors to build enumerations for
25datatypes, that is, functions from (arbitrarily large) integers to
26values. Such enumerations are typically used for unit testing. The
27library is efficient: the n-th element of an enumeration is returned
28without having computed the (n-1) previous elements. Complexity is in
29log(n), except for some pathological datatypes. See the homepage for
30details: https://github.com/lebotlan/ocaml-exenum
31Inspired by Feat: Functional Enumeration of Algebraic Types, by
32Duregard, Jansson, Wang, Chalmers University.
33
34As an example, consider the following datatype:
35type term = Var of string | App of term * term | Lambda of string * term
36
37Using exenum, one may easily generate zillions of different
38lambda-terms. In our specific example, term number 2000000000000
39happens to be
40((((x v) (fun u -> y)) ((fun u -> y) (fun y -> y))) (((x
41v) (fun u -> v)) (fun u -> y)))"""
42url {
43 src: "https://github.com/lebotlan/ocaml-exenum/archive/0.86.tar.gz"
44 checksum: [
45 "sha256=42a0112e2e4e85d43b5dbe207c7d118816253145ed89887b1036745de34df80f"
46 "md5=a4854a0286dfd8bcb3f34003365195a9"
47 ]
48}