Analysis updated 2026-05-18
Add bidirectional type checking to another OCaml project or compiler
Study how affine ownership tracking can prevent reuse after move bugs
Experiment with a Session based API for checking multiple expressions in sequence
Use as a reference implementation for building a similar type checker
| paraiconicity/meeps | bracevac/eff | astrada/google-drive-ocamlfuse | |
|---|---|---|---|
| Stars | 16 | — | 5,923 |
| Language | OCaml | OCaml | OCaml |
| Last pushed | — | 2016-12-02 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | hard | moderate | moderate |
| Complexity | 5/5 | 4/5 | 3/5 |
| Audience | researcher | researcher | ops devops |
Figures from each repo's GitHub metadata at analysis time.
The README has no installation or dependency instructions, so using it likely requires reading the OCaml source directly.
meeps is a small OCaml programming library that implements what is called a bidirectional type checker with something called affine ownership tracking. This is a tool aimed squarely at programming language researchers and compiler developers, not at general software users, and the README itself is very short, offering only two short code examples with almost no surrounding explanation. A type checker is a piece of software that looks at code before it runs and verifies that values are being used in ways that make sense, for example making sure you are not trying to treat a piece of text as a number. Bidirectional refers to a specific technique for doing this checking, where the type checker sometimes infers what type something should be and sometimes checks an expression against a type that was already specified elsewhere in the code. Affine ownership tracking is a way of keeping track of whether a value can be used more than once. In systems that use this idea, once a value has been moved or consumed, using it again is treated as an error, which helps catch a category of bugs related to accidentally reusing something that should only be used once, similar in spirit to the ownership rules found in languages like Rust. Based on the two examples in the README, the library lets a programmer build type checking expressions with an interface called Checker, either one expression at a time using an infer function, or across several expressions using a Session object that keeps track of ownership state as multiple pieces of code are checked in sequence. Beyond these two short snippets, the README does not explain installation, dependencies, or how to add this library to another OCaml project, so anyone wanting to use it would likely need to read the source code directly.
meeps is a small OCaml library that checks whether code uses values correctly, including tracking whether a value has already been used up, similar to ownership rules in Rust.
Mainly OCaml. The stack also includes OCaml.
No license file is specified in the README, so reuse terms are unclear.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.