opam-version: "2.0"
name: "typegist"
synopsis: "Represent the essence of OCaml types as values"
description: """\
Typegist represents the essence of OCaml types as values. This dynamic
type representation can be used to devise generic type-indexed
functions – value printers, parsers, differs, generators, editors,
ffi glue, etc.

Typegist aims at providing a flexible and ergonomic interface for both
producers and consumers of the representation. This notably means that:

1. It does not try to capture the full complexity of OCaml's type
   definition language. It focuses on a core structural type
   representation decorated with type-indexed existential metadata for
   customizing and extending the behaviour of generic functions.

2. More than one representation can be provided for a single type and
   any accessible type can be described up to the limits defined by
   its public interface. 
   
3. Abstract types can expose multiple versioned public representations
   (or none) which allows to interface with older representations your
   program may be subjected to.
   
Typegist is distributed under the ISC license. It has no dependencies. 

Homepage: <https://erratique.ch/software/typegist>"""
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
authors: "The typegist programmers"
license: "ISC"
tags: ["typerep" "generic" "org:erratique"]
homepage: "https://erratique.ch/software/typegist"
doc: "https://erratique.ch/software/typegist/doc"
bug-reports: "https://github.com/dbuenzli/typegist/issues"
depends: [
  "ocaml" {>= "5.5.0"}
  "ocamlfind" {build}
  "ocamlbuild" {build}
  "topkg" {build & >= "1.1.0"}
]
build: ["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%"]
dev-repo: "git+https://erratique.ch/repos/typegist.git"
x-maintenance-intent: ["(latest)"]
