{ stdenv, lib, fetchFromGitHub, fetchpatch, ocaml, findlib, withStatic ? false }: stdenv.mkDerivation (rec { version = "1.1"; pname = "ocaml${ocaml.version}-num"; src = fetchFromGitHub { owner = "ocaml"; repo = "num"; rev = "v${version}"; sha256 = "0a4mhxgs5hi81d227aygjx35696314swas0vzy3ig809jb7zq4h0"; }; patches = [ (fetchpatch { url = "https://github.com/ocaml/num/commit/6d4c6d476c061298e6385e8a0864f083194b9307.patch"; sha256 = "18zlvb5n327q8y3c52js5dvyy29ssld1l53jqng8m9w1k24ypi0b"; }) ] ++ lib.optional withStatic ./enable-static.patch; nativeBuildInputs = [ ocaml findlib ]; strictDeps = true; createFindlibDestdir = true; meta = { description = "Legacy Num library for arbitrary-precision integer and rational arithmetic"; license = lib.licenses.lgpl21; inherit (ocaml.meta) platforms; inherit (src.meta) homepage; }; } // (if lib.versions.majorMinor ocaml.version == "4.06" then { NIX_CFLAGS_COMPILE = "-fcommon"; } else {}) )