1{ stdenv, fetchgit, ocaml, findlib, ocamlbuild, menhir, which }:
2
3let inherit (stdenv.lib) getVersion versionAtLeast; in
4
5assert versionAtLeast (getVersion ocaml) "3.12";
6
7stdenv.mkDerivation {
8
9 name = "eff-20140928";
10
11 src = fetchgit {
12 url = "https://github.com/matijapretnar/eff.git";
13 rev = "90f884a790fddddb51d4d1d3b7c2edf1e8aabb64";
14 sha256 = "0cqqrpvfw0nrk5d28mkzfvc8yzqxcss0k46bkmqhqjkqq886n2mm";
15 };
16
17 buildInputs = [ ocaml findlib ocamlbuild menhir which ];
18
19 doCheck = true;
20 checkTarget = "test";
21
22 meta = with stdenv.lib; {
23 homepage = http://www.eff-lang.org;
24 description = "A functional programming language based on algebraic effects and their handlers";
25 longDescription = ''
26 Eff is a functional language with handlers of not only exceptions,
27 but also of other computational effects such as state or I/O. With
28 handlers, you can simply implement transactions, redirections,
29 backtracking, multi-threading, and much more...
30 '';
31 license = licenses.bsd2;
32 platforms = ocaml.meta.platforms or [];
33 maintainers = [ maintainers.jirkamarsik ];
34 };
35}