with import {}; let ocamlPackages = pkgs.recurseIntoAttrs pkgs.ocamlPackages_latest; ocamlVersion = (builtins.parseDrvName ocamlPackages.ocaml.name).version; findlibSiteLib = "${ocamlPackages.findlib}/lib/ocaml/${ocamlVersion}/site-lib"; ocamlInit = pkgs.writeText "ocamlinit" '' let () = try Topdirs.dir_directory "${findlibSiteLib}" with Not_found -> () ;; #use "topfind";; #thread;; #require "core";; #require "core.syntax";; ''; in stdenv.mkDerivation rec { name = "rwo-shell"; src = null; buildInputs = with ocamlPackages; [ ocaml core core_extended findlib utop dune ]; shellHook = '' alias utop="utop -init ${ocamlInit}" alias ocaml="ocaml -init ${ocamlInit}" ''; }