depyt

AuthorThomas Gazagnaire <thomas@gazagnaire.org>
LicenseISC
Homepagehttps://github.com/samoht/depyt
Issue Trackerhttps://github.com/samoht/depyt/issues
Tagorg:mirage
MaintainerThomas Gazagnaire <thomas@gazagnaire.org>
Dependencies
&alcotest
cstruct
fmt
jbuilder>= 1.0+beta10
jsonm
ocplib-endian>= 0.7
result
Availableocaml-version >= "4.03.0"
PublishedJul 12, 2017
Source [http] https://github.com/samoht/depyt/releases/download/0.2.0/depyt-0.2.0.tbz
b5e53bea6298f6b255fda6b906496938
StatisticsInstalled 30 times last month.
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/depyt/depyt.0.2.0/opam

Yet-an-other type combinator library

Depyt provides type combinators to define runtime representation for OCaml types and generic operations to manipulate values with a runtime type representation.

The type combinators supports all the usual type primitives but also compact definitions of records and variants. It also allows to define the runtime representation of recursive types.

Depyt is a modern reboot of Dyntype but using GADTs-based combinators instead of syntax-extensions. When we originally wrote Dyntype (in 2012) GADTs were not available in OCaml and camlp4 was everywhere -- this is not the case anymore. Finally, Depyt avoids some of the performance caveats present in Dyntype by avoiding allocating and converting between intermediate formats.

Variants

For instance, to define variants:

```ocaml

No package is dependent