at 18.09-beta 39 lines 1.2 kB view raw
1{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, qtest, result }: 2 3if !stdenv.lib.versionAtLeast ocaml.version "4.02" 4then throw "sequence is not available for OCaml ${ocaml.version}" 5else 6 7let version = "1.1"; in 8 9stdenv.mkDerivation { 10 name = "ocaml${ocaml.version}-sequence-${version}"; 11 12 src = fetchFromGitHub { 13 owner = "c-cube"; 14 repo = "sequence"; 15 rev = version; 16 sha256 = "08j37nldw47syq3yw4mzhhvya43knl0d7biddp0q9hwbaxhzgi44"; 17 }; 18 19 buildInputs = [ ocaml findlib jbuilder qtest ]; 20 propagatedBuildInputs = [ result ]; 21 22 doCheck = true; 23 checkPhase = "jbuilder runtest"; 24 25 inherit (jbuilder) installPhase; 26 27 meta = { 28 homepage = https://github.com/c-cube/sequence; 29 description = "Simple sequence (iterator) datatype and combinators"; 30 longDescription = '' 31 Simple sequence datatype, intended to transfer a finite number of 32 elements from one data structure to another. Some transformations on sequences, 33 like `filter`, `map`, `take`, `drop` and `append` can be performed before the 34 sequence is iterated/folded on. 35 ''; 36 license = stdenv.lib.licenses.bsd2; 37 platforms = ocaml.meta.platforms or []; 38 }; 39}