Skip to content
vic

typedefs/typedefs

Programming language agnostic type construction language based on polynomials.

typedefs/typedefs.json
{
"createdAt": "2017-10-09T16:44:56Z",
"defaultBranch": "master",
"description": "Programming language agnostic type construction language based on polynomials.",
"fullName": "typedefs/typedefs",
"homepage": "http://typedefs.com/",
"language": "Idris",
"name": "typedefs",
"pushedAt": "2024-05-29T23:39:55Z",
"stargazersCount": 370,
"topics": [
"category-theory",
"f-algebras",
"marshalling",
"serialization",
"serialization-library",
"type-definitions",
"type-theory",
"types"
],
"updatedAt": "2025-09-12T10:28:32Z",
"url": "https://github.com/typedefs/typedefs"
}

Build Status

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

See http://typedefs.com, or play around with examples at Try Typedefs!

Nix package descriptions, an [Elba manifest]!(elba.toml) and a [Makefile]!(Makefile) are provided.

If you want to build everything, do:

nix-build

If you only want to build a specific package:

nix-build -A typedefs.nix

Build everything:

make build-lib
sudo make install-lib
make build-rest

Build a specific package:

make build pkg=typedefs

Build documentation:

make doc-all

Run tests:

make test-all

Install:

sudo make install-all

Clean up:

make clean-all

There is a complete tutorial on how to compile and install typedefs using the elba package manager [here]!(docs/TUTORIAL_INSTALL.md).

In most cases it should be just as easy as:

elba install