This project is developed by the Statebox team.


Typedefs is a programming language agnostic, algebraic data type definition language, written in Idris.

Current backends are Haskell, ReasonML and JSON Schema, see targets for details.

You can try typedefs in your browser!


Existing tools (protobuf, thrift) lack algebraic structure and may cause friction when used in more principled settings such as proof assistants or purely functional programming languages.

An overview and motivation can be found on the about page.


This project is close to being usable. We are working hard on documentation, tooling and target language support.

In the long term, we envision a content addressable repository of types, usable in all programming languages and beyond.


Read about and introduction to get an idea what this does.

Or check out our code on github/typedefs. Follow @statebox on twitter to stay up to date.