btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / ef / eff / package.nix
blob998efe0c790e10fc7c5de7040d75d8e6c85c8170
1 { lib, fetchFromGitHub, ocamlPackages }:
3 let
4   inherit (ocamlPackages) buildDunePackage js_of_ocaml menhir;
5 in
7 buildDunePackage rec {
8   pname = "eff";
9   version = "5.1";
11   src = fetchFromGitHub {
12     owner = "matijapretnar";
13     repo = "eff";
14     rev = "v${version}";
15     hash = "sha256-0U61y41CA0YaoNk9Hsj7j6eb2V6Ku3MAjW9lMEimiC0=";
16   };
18   nativeBuildInputs = [ menhir ];
20   buildInputs = [ js_of_ocaml ];
22   doCheck = true;
24   meta = with lib; {
25     homepage = "https://www.eff-lang.org";
26     description = "Functional programming language based on algebraic effects and their handlers";
27     mainProgram = "eff";
28     longDescription = ''
29       Eff is a functional language with handlers of not only exceptions,
30       but also of other computational effects such as state or I/O. With
31       handlers, you can simply implement transactions, redirections,
32       backtracking, multi-threading, and much more...
33     '';
34     license = licenses.bsd2;
35     maintainers = [ maintainers.jirkamarsik ];
36   };