{
  stdenv,
  lib,
  fetchFromGitHub,
  ocaml,
  findlib,
  topkg,
  ocamlbuild,
  re,
}:

stdenv.mkDerivation rec {
  pname = "ocaml${ocaml.version}-simple-diff";
  version = "0.3";

  src = fetchFromGitHub {
    owner = "gjaldon";
    repo = "simple_diff";
    rev = "v${version}";
    sha256 = "sha256-OaKECUBCCt9KfdRJf3HcXTUJVxKKdYtnzOHpMPOllrk=";
  };

  nativeBuildInputs = [
    ocaml
    findlib
    ocamlbuild
    topkg
  ];
  buildInputs = [ topkg ];
  propagatedBuildInputs = [ re ];

  strictDeps = true;

  inherit (topkg) buildPhase installPhase;

  meta = with lib; {
    homepage = "https://github.com/gjaldon/simple_diff";
    description = "Simple_diff is a pure OCaml diffing algorithm";
    license = licenses.isc;
    maintainers = with maintainers; [ ulrikstrid ];
  };
}