{ lib, fetchFromGitHub, fetchpatch, ocamlPackages, }: ocamlPackages.buildDunePackage (finalAttrs: { pname = "baguette_sharp"; version = "2.3.0"; minimalOCamlVersion = "4.13.1"; duneVersion = "3"; src = fetchFromGitHub { owner = "vanilla-extracts"; repo = "ocaml-baguettesharp-interpreter"; rev = "v${finalAttrs.version}"; hash = "sha256-GI60O6om71P3L+fGHGBCZ+U8vMlwPgYTWZCSCnEM0Wc="; }; buildInputs = with ocamlPackages; [ fmt linenoise ]; patches = [ (fetchpatch { name = "dune-fix"; url = "https://github.com/vanilla-extracts/ocaml-baguettesharp-interpreter/commit/8809bc39a5e2cb02f757636f9939dc7818876779.patch"; hash = "sha256-j0C2T3ZZ3K2Xvvl0qH5zl0znTkiUR8PO9FlqqPUX2aw="; }) ]; meta = { homepage = "https://github.com/vanilla-extracts/ocaml-baguettesharp-interpreter"; description = "OCaml Implementation of the (famous) Baguette# exotic language, used as TIPE for the 2022,2023 seasons concours"; license = lib.licenses.gpl3Plus; mainProgram = "baguette_sharp.repl"; }; })