Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Extension to OCaml for deriving functions from type declarations.
OCaml

This branch is 146 commits ahead of jaked:master

Failed to load latest commit information.
doc doc
lib Add missing dependencies on 'bytes' in META
syntax Fix wrt latest camlp4 4.02
tests Simplify _tags
.gitignore Merge remote-tracking branch 'origin/oasis.0.4.4' into HEAD
.jenkins.sh Update .jenkins.sh and Makefile for documentation
CHANGES
COPYING deriving 0.1.1a
Makefile Update .jenkins.sh and Makefile for documentation
Makefile.dist Fix Makefile.dist
README.md Oasis: fix optional dependency on type_conv
_oasis Updates CHANGES for 0.7
_tags Bugfix in _tags (bug in 'oasis' to be reported)
configure
myocamlbuild.ml doc
opam
setup.ml Use the OASIS alpha feature: compiled_setup_ml

README.md

Deriving (was Deriving-ocsigen)

This release of deriving is based on the library by Jeremy Yallop. See:

Compared to the original library, it adds:

  • META file for ocamlfind compatibility
  • a type-conv compatibility mode
  • the generated code do not rely on recursive modules (this allows compatibility with js_of_ocaml)
  • minimalistic support of GADT

See CHANGES for more details.

Requirements:

  • ocaml and camlp4 (>= 3.12)
  • optcomp
  • type-conv (optionnal)

Build intructions:

 $ ./configure [--disable-tc]
 $ make

 # make install

Documention and examples of the original library:

Examples:

 $ ocaml
        Objective Caml version 4.01.0

 # #use "topfind";;
 - : unit = ()
 # #camlp4o;;
    Camlp4 Parsing version 4.01.0

 # #require "deriving";;
 # type t = A of int | B of t deriving (Show);;
 type t = A of int | B of t
 module rec Show_t : sig ... end
 # Show.show<t> (B (A 4));;
 - : string = "B A 4"

Examples with type-conv:

 $ ocaml
        Objective Caml version 4.01.0@

 # #use "topfind";;
 - : unit = ()
 # #camlp4o;;
    Camlp4 Parsing version 4.01.0

 # #require "deriving.tc";;
 # type t = A of int | B of t with show;;
 type t = A of int | B of t
 module rec Show_t : sig ... end
Something went wrong with that request. Please try again.