https://github.com/rlepigre/ocaml-bindlib
Efficient binder representation in OCaml
https://github.com/rlepigre/ocaml-bindlib
binders hoas
Last synced: 11 months ago
JSON representation
Efficient binder representation in OCaml
- Host: GitHub
- URL: https://github.com/rlepigre/ocaml-bindlib
- Owner: rlepigre
- License: lgpl-3.0
- Created: 2017-08-20T13:48:51.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-07-05T23:05:41.000Z (almost 2 years ago)
- Last Synced: 2025-07-09T23:25:29.800Z (11 months ago)
- Topics: binders, hoas
- Language: OCaml
- Homepage: https://rlepigre.github.io/ocaml-bindlib/
- Size: 4.23 MB
- Stars: 42
- Watchers: 5
- Forks: 6
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
The Bindlib library for OCaml
=============================
Bindlib is a library allowing the manipulation of data structures
with bound variables. It is particularly useful when writing ASTs
for programming languages, but also for manipulating terms of the
λ-calculus or quantified formulas. In the internals, binders are
represented using a form of higher-order abstract syntax (HOAS).
Ressources:
- [Introductory paper](https://eptcs.web.cse.unsw.edu.au/paper.cgi?LFMTP2018.4)
- [Generated documentation](https://rlepigre.github.io/ocaml-bindlib/ocamldoc/Bindlib.html)
Projects using Bindlib:
- [Lambdapi (implementation of Dedukti)](https://github.com/rlepigre/lambdapi)
- [PML₂ language](https://github.com/rlepigre/pml)
- [SubML language](https://rlepigre.github.io/subml/)
- [PML](https://lama.univ-savoie.fr/tracpml)
- [The Catala language](https://catala-lang.org/)
- Many more small projects...
Dependencies
------------
List of dependencies:
- OCaml (at least version 4.07.0),
- The Dune build system (at least version 2.7.0).
Installation
------------
You can either pin the repository with opam or run the following.
```bash
make
make install
```
Contributors
------------
Main contributors:
- Christophe Raffalli ([@craff](https://github.com/craff), author of the first version)
- Rodolphe Lepigre ([@rlepigre](https://github.com/rlepigre))
The project received additional contributions from:
- Alain ([@adelaett](https://github.com/adelaett))
- Rémi Nollet ([@rnollet](https://github.com/rnollet))
- Qiancheng Fu ([@qcfu-bu](https://github.com/qcfu-bu))