Tina is a programming language based algebraic effects and handlers. This implementation contains an interpreter and two compilers (JavaScript and LLVM)
While algebraic effects and handlers might be the central concept aroun Tina, it also supports other features such as pattern matching, closures, algebraic data types, and a type system.
This is a work in progress.
Everyone is free to contribute!
There is an online playground comming soon!
Building Tina is relatively straight forward once you have the required toolchains installed.
You would need:
- Dune
- OCaml (>= 4.12)
- Opam
Steps to build
- Clone this repo:
$ git clone https://github.com/ebresafegaga/tina
- Pin it to the this version
$ opam pin add tina.dev -n .
- Install native dependecies
$ opam depext -yt tina
- Install library dependecies
$ opam install -t . --deps-only
- Build the whole project
$ dune build