https://github.com/typedefs/typedefs
Programming language agnostic type construction language based on polynomials.
https://github.com/typedefs/typedefs
category-theory f-algebras marshalling serialization serialization-library type-definitions type-theory types
Last synced: 3 months ago
JSON representation
Programming language agnostic type construction language based on polynomials.
- Host: GitHub
- URL: https://github.com/typedefs/typedefs
- Owner: typedefs
- License: agpl-3.0
- Created: 2017-10-09T16:44:56.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-12-07T15:07:23.000Z (over 3 years ago)
- Last Synced: 2024-04-24T08:03:15.293Z (about 1 year ago)
- Topics: category-theory, f-algebras, marshalling, serialization, serialization-library, type-definitions, type-theory, types
- Language: Idris
- Homepage: http://typedefs.com/
- Size: 718 KB
- Stars: 364
- Watchers: 15
- Forks: 18
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Typedefs
[](https://travis-ci.com/typedefs/typedefs)
## About
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!](https://try.typedefs.com)
## Build and run
Nix package descriptions, an [Elba manifest](elba.toml) and a [Makefile](Makefile) are provided.
### Nix packages
If you want to build everything, do:
`nix-build`
If you only want to build a specific package:
`nix-build -A typedefs.nix`
### Makefile
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`
### Elba
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
```