{ lib , fetchurl , buildDunePackage , ocaml , ounit , ppx_deriving , ppx_sexp_conv , ppxlib , version ? if lib.versionAtLeast ocaml.version "4.11" then "1.11.0" else "1.9.1" }: lib.throwIfNot (lib.versionAtLeast ppxlib.version "0.24.0") "ppx_import is not available with ppxlib-${ppxlib.version}" buildDunePackage rec { pname = "ppx_import"; inherit version; minimalOCamlVersion = "4.05"; src = fetchurl { url = let dir = if lib.versionAtLeast version "1.11" then "v${version}" else "${version}"; in "https://github.com/ocaml-ppx/ppx_import/releases/download/${dir}/ppx_import-${version}.tbz"; hash = { "1.9.1" = "sha256-0bSY4u44Ds84XPIbcT5Vt4AG/4PkzFKMl9CDGFZyIdI="; "1.11.0" = "sha256-Jmfv1IkQoaTkyxoxp9FI0ChNESqCaoDsA7D4ZUbOrBo="; }."${version}"; }; propagatedBuildInputs = [ ppxlib ]; checkInputs = [ ounit ppx_deriving ppx_sexp_conv ]; doCheck = true; meta = { description = "A syntax extension for importing declarations from interface files"; license = lib.licenses.mit; homepage = "https://github.com/ocaml-ppx/ppx_import"; }; }