aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix506
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix514
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/bin_prot.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/core_bench.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix604
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/fieldslib.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/old.nix615
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-core.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-here.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-let.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/sexplib.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/typerep.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/variantslib.nix19
41 files changed, 2862 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
new file mode 100644
index 000000000000..4585a3b8596c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
@@ -0,0 +1,506 @@
+{ janePackage
+, ctypes
+, num
+, octavius
+, ppxlib
+, re
+, openssl
+}:
+
+rec {
+
+ ocaml-compiler-libs = janePackage {
+ pname = "ocaml-compiler-libs";
+ hash = "0g9y1ljjsj1nw0lz460ivb6qmz9vhcmfl8krlmqfrni6pc7b0r6f";
+ meta.description = "OCaml compiler libraries repackaged";
+ };
+
+ sexplib0 = janePackage {
+ pname = "sexplib0";
+ hash = "13xdd0pvypxqn0ldwdgikmlinrp3yfh8ixknv1xrpxbx3np4qp0g";
+ meta.description = "Library containing the definition of S-expressions and some base converters";
+ };
+
+ base = janePackage {
+ pname = "base";
+ version = "0.12.2";
+ hash = "0gl89zpgsf3n30nb6v5cns27g2bfg4rf3s2427gqvwbkr5gcf7ri";
+ meta.description = "Full standard library replacement for OCaml";
+ propagatedBuildInputs = [ sexplib0 ];
+ };
+
+ stdio = janePackage {
+ pname = "stdio";
+ hash = "1pn8jjcb79n6crpw7dkp68s4lz2mw103lwmfslil66f05jsxhjhg";
+ meta.description = "Standard IO library for OCaml";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_sexp_conv = janePackage {
+ pname = "ppx_sexp_conv";
+ hash = "0idzp1kzds0gnilschzs9ydi54if8y5xpn6ajn710vkipq26qcld";
+ meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_here = janePackage {
+ pname = "ppx_here";
+ hash = "07qbchwif1i9ii8z7v1bib57d3mjv0b27i8iixw78i83wnsycmdx";
+ meta.description = "Expands [%here] into its location";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_compare = janePackage {
+ pname = "ppx_compare";
+ hash = "0n1ax4k2smhps9hc2v58lc06a0fgimwvbi1aj4x78vwh5j492bys";
+ meta.description = "Generation of comparison functions from types";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_assert = janePackage {
+ pname = "ppx_assert";
+ hash = "0as6mzr6ki2a9d4k6132p9dskn0qssla1s7j5rkzp75bfikd0ip8";
+ meta.description = "Assert-like extension nodes that raise useful errors on failure";
+ propagatedBuildInputs = [ ppx_compare ppx_here ppx_sexp_conv ];
+ };
+
+ ppx_inline_test = janePackage {
+ pname = "ppx_inline_test";
+ hash = "0nyz411zim94pzbxm2l2v2l9jishcxwvxhh142792g2s18r4vn50";
+ meta.description = "Syntax extension for writing in-line tests in ocaml code";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_custom_printf = janePackage {
+ pname = "ppx_custom_printf";
+ version = "0.12.1";
+ hash = "0q7591agvd3qy9ihhbyk4db48r0ng7yxspfj8afxxiawl7k5bas6";
+ meta.description = "Printf-style format-strings for user-defined string conversion";
+ propagatedBuildInputs = [ ppx_sexp_conv ];
+ };
+
+ fieldslib = janePackage {
+ pname = "fieldslib";
+ hash = "0dlgr7cimqmjlcymk3bdcyzqzvdy12q5lqa844nqix0k2ymhyphf";
+ meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_fields_conv = janePackage {
+ pname = "ppx_fields_conv";
+ hash = "0flrdyxdfcqcmdrbipxdjq0s3djdgs7z5pvjdycsvs6czbixz70v";
+ meta.description = "Generation of accessor and iteration functions for ocaml records";
+ propagatedBuildInputs = [ fieldslib ppxlib ];
+ };
+
+ variantslib = janePackage {
+ pname = "variantslib";
+ hash = "1cclb5magk63gyqmkci8abhs05g2pyhyr60a2c1bvmig0faqcnsf";
+ meta.description = "Part of Jane Street's Core library";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_variants_conv = janePackage {
+ pname = "ppx_variants_conv";
+ hash = "05j9bgra8xq6fcp12ch3z9vjrk139p2wrcjjcs4h52n5hhc8vzbz";
+ meta.description = "Generation of accessor and iteration functions for ocaml variant types";
+ propagatedBuildInputs = [ variantslib ppxlib ];
+ };
+
+ ppx_expect = janePackage {
+ pname = "ppx_expect";
+ hash = "1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q";
+ meta.description = "Cram like framework for OCaml";
+ propagatedBuildInputs = [ ppx_assert ppx_custom_printf ppx_fields_conv ppx_inline_test ppx_variants_conv re ];
+ };
+
+ ppx_enumerate = janePackage {
+ pname = "ppx_enumerate";
+ hash = "08zfpq6bdm5lh7xj9k72iz9f2ihv3aznl3nypw3x78vz1chj8dqa";
+ meta.description = "Generate a list containing all values of a finite type";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_hash = janePackage {
+ pname = "ppx_hash";
+ hash = "1dfsfvhiyp1mnf24mr93svpdn432kla0y7x631lssacxxp2sadbg";
+ meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
+ propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+ };
+
+ ppx_js_style = janePackage {
+ pname = "ppx_js_style";
+ hash = "1lz931m3qdv3yzqy6dnb8fq1d99r61w0n7cwf3b9fl9rhk0pggwh";
+ meta.description = "Code style checker for Jane Street Packages";
+ propagatedBuildInputs = [ octavius ppxlib ];
+ };
+
+ ppx_base = janePackage {
+ pname = "ppx_base";
+ hash = "0vd96rp2l084iamkwmvizzhl9625cagjb6gzzbir06czii5mlq2p";
+ meta.description = "Base set of ppx rewriters";
+ propagatedBuildInputs = [ ppx_enumerate ppx_hash ppx_js_style ];
+ };
+
+ ppx_bench = janePackage {
+ pname = "ppx_bench";
+ hash = "1ib81irawxzq091bmpi50z0kmpx6z2drg14k2xcgmwbb1d4063xn";
+ meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
+ propagatedBuildInputs = [ ppx_inline_test ];
+ };
+
+ ppx_sexp_message = janePackage {
+ pname = "ppx_sexp_message";
+ hash = "0yskd6v48jc6wa0nhg685kylh1n9qb6b7d1wglr9wnhl9sw990mc";
+ meta.description = "A ppx rewriter for easy construction of s-expressions";
+ propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
+ };
+
+ splittable_random = janePackage {
+ pname = "splittable_random";
+ hash = "1wpyz7807cgj8b50gdx4rw6f1zsznp4ni5lzjbnqdwa66na6ynr4";
+ meta.description = "PRNG that can be split into independent streams";
+ propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
+ };
+
+ ppx_let = janePackage {
+ pname = "ppx_let";
+ hash = "146dmyzkbmafa3giz69gpxccvdihg19cvk4xsg8krbbmlkvdda22";
+ meta.description = "Monadic let-bindings";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ base_quickcheck = janePackage {
+ pname = "base_quickcheck";
+ hash = "1la6qgq1zwmfyq1hqy6i337w435ym5yqgx2ygk86qip6nws0s6r3";
+ meta.description = "Randomized testing framework, designed for compatibility with Base";
+ propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let splittable_random ];
+ };
+
+ ppx_stable = janePackage {
+ pname = "ppx_stable";
+ hash = "15zvf66wlkvz0yd4bkvndkpq74dj20jv1qkljp9n52hh7d0f9ykh";
+ meta.description = "Stable types conversions generator";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ bin_prot = janePackage {
+ pname = "bin_prot";
+ hash = "0hh6s7g9s004z35hsr8z6nw5phlcvcd6g2q3bj4f0s1s0anlsswm";
+ meta.description = "A binary protocol generator";
+ propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
+ };
+
+ ppx_bin_prot = janePackage {
+ pname = "ppx_bin_prot";
+ version = "0.12.1";
+ hash = "1j0kjgmv58dmg3x5dj5zrfbm920rwq21lvkkaqq493y76cd0x8xg";
+ meta.description = "Generation of bin_prot readers and writers from types";
+ propagatedBuildInputs = [ bin_prot ppx_here ];
+ };
+
+ ppx_fail = janePackage {
+ pname = "ppx_fail";
+ hash = "0krsv6z9gi0ifxmw5ss6gwn108qhywyhbs41an10x9d5zpgf4l1n";
+ meta.description = "Add location to calls to failwiths";
+ propagatedBuildInputs = [ ppx_here ];
+ };
+
+ jst-config = janePackage {
+ pname = "jst-config";
+ hash = "0yxcz13vda1mdh9ah7qqxwfxpcqang5sgdssd8721rszbwqqaw93";
+ meta.description = "Compile-time configuration for Jane Street libraries";
+ buildInputs = [ ppx_assert ];
+ };
+
+ ppx_optcomp = janePackage {
+ pname = "ppx_optcomp";
+ hash = "0bdbx01kz0174g1szdhv3mcfqxqqf2frxq7hk13xaf6fsz04kwmj";
+ meta.description = "Optional compilation for OCaml";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ jane-street-headers = janePackage {
+ pname = "jane-street-headers";
+ hash = "0qa4llf812rjqa8nb63snmy8d8ny91p3anwhb50afb7vjaby8m34";
+ meta.description = "Jane Street C header files";
+ };
+
+ time_now = janePackage {
+ pname = "time_now";
+ hash = "169mgsb3rja4j1j9nj5xa7bbkd21p9kfpskqz0wjf9x2fpxqsniq";
+ meta.description = "Reports the current time";
+ buildInputs = [ jst-config ppx_optcomp ];
+ propagatedBuildInputs = [ jane-street-headers base ppx_base ];
+ };
+
+ ppx_module_timer = janePackage {
+ pname = "ppx_module_timer";
+ hash = "0yziakm7f4c894na76k1z4bp7azy82xc33mh36fj761w1j9zy3wm";
+ meta.description = "Ppx rewriter that records top-level module startup times";
+ propagatedBuildInputs = [ time_now ];
+ };
+
+ ppx_optional = janePackage {
+ pname = "ppx_optional";
+ hash = "07i0iipbd5xw2bc604qkwlcxmhncfpm3xmrr6svyj2ij86pyssh8";
+ meta.description = "Pattern matching on flat options";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_pipebang = janePackage {
+ pname = "ppx_pipebang";
+ hash = "1p4pdpl8h2bblbhpn5nk17ri4rxpz0aih0gffg3cl1186irkj0xj";
+ meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_sexp_value = janePackage {
+ pname = "ppx_sexp_value";
+ hash = "1mg81834a6dx1x7x9zb9wc58438cabjjw08yhkx6i386hxfy891p";
+ meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
+ propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
+ };
+
+ typerep = janePackage {
+ pname = "typerep";
+ hash = "1psl6gsk06a62szh60y5sc1s92xpmrl1wpw3rhha09v884b7arbc";
+ meta.description = "Typerep is a library for runtime types";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_typerep_conv = janePackage {
+ pname = "ppx_typerep_conv";
+ hash = "09vik6qma1id44k8nz87y48l9wbjhqhap1ar1hpfdfkjai1hrzzq";
+ meta.description = "Generation of runtime types from type declarations";
+ propagatedBuildInputs = [ ppxlib typerep ];
+ };
+
+ ppx_jane = janePackage {
+ pname = "ppx_jane";
+ hash = "1a2602isqzsh640q20qbmarx0sc316mlsqc3i25ysv2kdyhh0kyw";
+ meta.description = "Standard Jane Street ppx rewriters";
+ propagatedBuildInputs = [ base_quickcheck ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_sexp_value ppx_stable ppx_typerep_conv ];
+ };
+
+ base_bigstring = janePackage {
+ pname = "base_bigstring";
+ hash = "0rbgyg511847fbnxad40prz2dyp4da6sffzyzl88j18cxqxbh1by";
+ meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
+ propagatedBuildInputs = [ ppx_jane ];
+ };
+
+ parsexp = janePackage {
+ pname = "parsexp";
+ hash = "1974i9s2c2n03iffxrm6ncwbd2gg6j6avz5jsxfd35scc2zxcd4l";
+ meta.description = "S-expression parsing library";
+ propagatedBuildInputs = [ base sexplib0 ];
+ };
+
+ sexplib = janePackage {
+ pname = "sexplib";
+ hash = "0780klc5nnv0ij6aklzra517cfnfkjdlp8ylwjrqwr8dl9rvxza2";
+ meta.description = "Library for serializing OCaml values to and from S-expressions";
+ propagatedBuildInputs = [ num parsexp ];
+ };
+
+ core_kernel = janePackage {
+ pname = "core_kernel";
+ version = "0.12.2";
+ hash = "0c85bjvadrb4pmjcg0gjk3bkkgka62r90pjm690mjvcbbv5zjxzj";
+ meta.description = "System-independent part of Core";
+ buildInputs = [ jst-config ];
+ propagatedBuildInputs = [ base_bigstring sexplib ];
+ };
+
+ spawn = janePackage {
+ pname = "spawn";
+ version = "0.13.0";
+ hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
+ meta.description = "Spawning sub-processes";
+ buildInputs = [ ppx_expect ];
+ };
+
+ core = janePackage {
+ pname = "core";
+ version = "0.12.3";
+ hash = "1vmjqiafkg45hqfvahx6jnlaww1q4a4215k8znbgprf0qn3zymnj";
+ meta.description = "System-independent part of Core";
+ buildInputs = [ jst-config ];
+ propagatedBuildInputs = [ core_kernel spawn ];
+ };
+
+ async_kernel = janePackage {
+ pname = "async_kernel";
+ hash = "1d9illx7vvpblj1i2r9y0f2yff2fbhy3rp4hhvamq1n9n3lvxmh2";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ core_kernel ];
+ };
+
+ protocol_version_header = janePackage {
+ pname = "protocol_version_header";
+ hash = "14vqhx3r84rlfhcjq52gxdqksckiaswlck9s47g7y2z1lsc17v7r";
+ meta.description = "Protocol versioning";
+ propagatedBuildInputs = [ core_kernel ];
+ };
+
+ async_rpc_kernel = janePackage {
+ pname = "async_rpc_kernel";
+ hash = "1znhqbzx4fp58i7dbcgyv5rx7difbhb5d8cbqzv96yqvbn67lsjk";
+ meta.description = "Platform-independent core of Async RPC library";
+ propagatedBuildInputs = [ async_kernel protocol_version_header ];
+ };
+
+ async_unix = janePackage {
+ pname = "async_unix";
+ hash = "09h10rdyykbm88n6r9nb5a22mlb6vcxa04q6hvrcr0kys6qhhqmb";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ async_kernel core ];
+ };
+
+ async_extra = janePackage {
+ pname = "async_extra";
+ hash = "10j4mwlyqvf67yrp5dwd857llqjinpnnykmlzw2gpmks9azxk6mh";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ async_rpc_kernel async_unix ];
+ };
+
+ textutils = janePackage {
+ pname = "textutils";
+ hash = "0302awqihf3abib9mvzvn4g8m364hm6jxry1r3kc01hzybhy9acq";
+ meta.description = "Text output utilities";
+ propagatedBuildInputs = [ core ];
+ };
+
+ async = janePackage {
+ pname = "async";
+ hash = "0pk7z3h2gi21nfchvmjz2wx516bynf9vgwf84zf5qhvlvqqsmyrx";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ async_extra textutils ];
+ };
+
+ async_ssl = janePackage {
+ pname = "async_ssl";
+ hash = "02ard8x5q5c42d9jdqmyzfx624yjq8cxxmvq3zb82hf6p8cc57ml";
+ meta.description = "An Async-pipe-based interface with OpenSSL";
+ propagatedBuildInputs = [ async ctypes openssl ];
+ };
+
+ async_find = janePackage {
+ pname = "async_find";
+ hash = "0qsz9f15s5rlk6za10s810v6nlkdxg2g9p1827lcpa7nhjcpi673";
+ meta.description = "Directory traversal with Async";
+ propagatedBuildInputs = [ async ];
+ };
+
+ re2 = janePackage {
+ pname = "re2";
+ hash = "1sw32lb0y501y971ij7287796lvfhs0nfgla895r74ymfks2rcjb";
+ meta.description = "OCaml bindings for RE2, Google's regular expression library";
+ propagatedBuildInputs = [ core_kernel ];
+ prePatch = ''
+ substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
+ substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
+ '';
+ };
+
+ shell = janePackage {
+ pname = "shell";
+ hash = "158857rdr6qgglc5iksg0l54jgf51b5lmsw7nlazpxwdwc9fcn5n";
+ meta.description = "Yet another implementation of fork&exec and related functionality";
+ buildInputs = [ jst-config ];
+ propagatedBuildInputs = [ re2 textutils ];
+ };
+
+ async_shell = janePackage {
+ pname = "async_shell";
+ hash = "0cxln9hkc3cy522la9yi9p23qjwl69kqmadsq4lnjh5bxdad06sv";
+ meta.description = "Shell helpers for Async";
+ propagatedBuildInputs = [ async shell ];
+ };
+
+ core_bench = janePackage {
+ pname = "core_bench";
+ hash = "00hyzbbj19dkcw0vhfnc8w0ca3zkjriwwvl00ssa0a2g9mygijdm";
+ meta.description = "Benchmarking library";
+ propagatedBuildInputs = [ textutils ];
+ };
+
+ core_extended = janePackage {
+ pname = "core_extended";
+ hash = "1gwx66235irpf5krb1r25a3c7w52qhmass8hp7rdv89il9jn49w4";
+ meta.description = "Extra components that are not as closely vetted or as stable as Core";
+ propagatedBuildInputs = [ core ];
+ };
+
+ sexp_pretty = janePackage {
+ pname = "sexp_pretty";
+ hash = "06hdsaszc5cd7fphiblbn4r1sh36xgjwf2igzr2rvlzqs7jiv2v4";
+ meta.description = "S-expression pretty-printer";
+ propagatedBuildInputs = [ ppx_base re sexplib ];
+ };
+
+ expect_test_helpers_kernel = janePackage {
+ pname = "expect_test_helpers_kernel";
+ hash = "18ya187y2i2hfxr771sd9vy5jdsa30vhs56yjdhwk06v01b2fzbq";
+ meta.description = "Helpers for writing expectation tests";
+ buildInputs = [ ppx_jane ];
+ propagatedBuildInputs = [ core_kernel sexp_pretty ];
+ };
+
+ expect_test_helpers = janePackage {
+ pname = "expect_test_helpers";
+ hash = "0ixqck2lnsmz107yw0q2sr8va80skjpldx7lz4ymjiq2vsghk0rb";
+ meta.description = "Async helpers for writing expectation tests";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ };
+
+ patience_diff = janePackage {
+ pname = "patience_diff";
+ hash = "055kd3piadjnplip8c8q99ssh79d4irmhg2wng7aida5pbqp2p9f";
+ meta.description = "Diff library using Bram Cohen's patience diff algorithm";
+ propagatedBuildInputs = [ core_kernel ];
+ };
+
+ ecaml = janePackage {
+ pname = "ecaml";
+ hash = "0n9xi6agc3lgyj2nsi10cbif0xwn57xyaranad9r285rmbxrgjh7";
+ meta.description = "Library for writing Emacs plugin in OCaml";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ };
+
+ ### Packages at version 0.11, with dependencies at version 0.12
+
+ configurator = janePackage {
+ pname = "configurator";
+ version = "0.11.0";
+ hash = "0h686630cscav7pil8c3w0gbh6rj4b41dvbnwmicmlkc746q5bfk";
+ propagatedBuildInputs = [ stdio ];
+ meta.description = "Helper library for gathering system configuration";
+ };
+
+ ppx_core = janePackage {
+ pname = "ppx_core";
+ version = "0.11.0";
+ hash = "11hgm9mxig4cm3c827f6dns9mjv3pf8g6skf10x0gw9xnp1dmzmx";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_driver = janePackage {
+ pname = "ppx_driver";
+ version = "0.11.0";
+ hash = "00kfx6js2kxk57k4v7hiqvwk7h35whgjihnxf75m82rnaf4yzvfi";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_type_conv = janePackage {
+ pname = "ppx_type_conv";
+ version = "0.11.0";
+ hash = "04dbrglqqhkas25cpjz8xhjcbpk141c35qggzw66bn69izczfmaf";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix
new file mode 100644
index 000000000000..b92027a65a0d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix
@@ -0,0 +1,514 @@
+{ janePackage
+, ctypes
+, dune-configurator
+, num
+, octavius
+, ppxlib
+, re
+, openssl
+}:
+
+rec {
+
+ ocaml-compiler-libs = janePackage {
+ pname = "ocaml-compiler-libs";
+ version = "0.12.1";
+ hash = "0hpk54fcsfcjp536fgwr80mjjf88hjk58q7jwnyrhk2ljd8xzgiv";
+ meta.description = "OCaml compiler libraries repackaged";
+ };
+
+ sexplib0 = janePackage {
+ pname = "sexplib0";
+ hash = "1b1bk0xs1hqa12qs5y4h1yl3mq6xml4ya2570dyhdn1j0fbw4g3y";
+ meta.description = "Library containing the definition of S-expressions and some base converters";
+ };
+
+ base = janePackage {
+ pname = "base";
+ version = "0.13.1";
+ hash = "08a5aymcgr5svvm8v0v20msd5cad64m6maakfbhz4172g7kd9jzw";
+ meta.description = "Full standard library replacement for OCaml";
+ propagatedBuildInputs = [ sexplib0 ];
+ };
+
+ stdio = janePackage {
+ pname = "stdio";
+ hash = "1hkj9vh8n8p3n5pvx7053xis1pfmqd8p7shjyp1n555xzimfxzgh";
+ meta.description = "Standard IO library for OCaml";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_sexp_conv = janePackage {
+ pname = "ppx_sexp_conv";
+ hash = "0jkhwmkrfq3ss6bv6i3m871alcr4xpngs6ci6bmzv3yfl7s8bwdf";
+ meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_here = janePackage {
+ pname = "ppx_here";
+ hash = "1ahidrrjsyi0al06bhv5h6aqmdk7ryz8dybfhqjsn1zp9q056q35";
+ meta.description = "Expands [%here] into its location";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_compare = janePackage {
+ pname = "ppx_compare";
+ hash = "14pnqa47gsvq93z1b8wb5pyq8zw90aaw71j4pwlyid4s86px454j";
+ meta.description = "Generation of comparison functions from types";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_cold = janePackage {
+ pname = "ppx_cold";
+ hash = "0wnfwsgbzk4i5aqjlcaqp6lkvrq5345vazryvx2klbbrd4759h9f";
+ meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_assert = janePackage {
+ pname = "ppx_assert";
+ hash = "08dada2xcp3w5mir90z56qrdyd317lygml4qlfssj897534bwiqr";
+ meta.description = "Assert-like extension nodes that raise useful errors on failure";
+ propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ];
+ };
+
+ ppx_inline_test = janePackage {
+ pname = "ppx_inline_test";
+ hash = "135qzbhqy33lmigbq1rakr9i3y59y3pczh4laanqjyss9b9kfs60";
+ meta.description = "Syntax extension for writing in-line tests in ocaml code";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_custom_printf = janePackage {
+ pname = "ppx_custom_printf";
+ hash = "0kvfkdk4wg2z8x705bajvl1f8wiyy3aya203wdzc9425h73nqm5p";
+ meta.description = "Printf-style format-strings for user-defined string conversion";
+ propagatedBuildInputs = [ ppx_sexp_conv ];
+ };
+
+ fieldslib = janePackage {
+ pname = "fieldslib";
+ hash = "0nsl0i9vjk73pr70ksxqa65rd5v84jzdaazryfdy6i4a5sfg7bxa";
+ meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_fields_conv = janePackage {
+ pname = "ppx_fields_conv";
+ hash = "0biw0fgphj522bj9wgjk263i2w92vnpaabzr5zn0grihp4yqy8w4";
+ meta.description = "Generation of accessor and iteration functions for ocaml records";
+ propagatedBuildInputs = [ fieldslib ppxlib ];
+ };
+
+ variantslib = janePackage {
+ pname = "variantslib";
+ hash = "04nps65v1n0nv9n1c1kj5k9jyqsfsxb6h2w3vf6cibhjr5m7z8xc";
+ meta.description = "Part of Jane Street's Core library";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_variants_conv = janePackage {
+ pname = "ppx_variants_conv";
+ hash = "1ssinizz11bws06qzjky486cj1zrflij1f7hi16d02j40qmyjz7b";
+ meta.description = "Generation of accessor and iteration functions for ocaml variant types";
+ propagatedBuildInputs = [ variantslib ppxlib ];
+ };
+
+ ppx_expect = janePackage {
+ pname = "ppx_expect";
+ hash = "1hhcga960wjvhcx5pk7rcywl1p9n2ycvqa294n24m8dhzqia6i47";
+ meta.description = "Cram like framework for OCaml";
+ propagatedBuildInputs = [ ppx_assert ppx_custom_printf ppx_fields_conv ppx_inline_test ppx_variants_conv re ];
+ };
+
+ ppx_enumerate = janePackage {
+ pname = "ppx_enumerate";
+ hash = "0hsg6f2nra1mb35jdgym5rf7spm642bs6qqifbikm9hg8f7z3ql4";
+ meta.description = "Generate a list containing all values of a finite type";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_hash = janePackage {
+ pname = "ppx_hash";
+ hash = "1f7mfyx4wgk67hchi57w3142m61ka3vgy1969cbkwr3akv6ifly2";
+ meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
+ propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+ };
+
+ ppx_js_style = janePackage {
+ pname = "ppx_js_style";
+ hash = "1zlhcn0an5k9xjymk5z5m2vqi8zajy6nvcbl5sdn19pjl3zv645x";
+ meta.description = "Code style checker for Jane Street Packages";
+ propagatedBuildInputs = [ octavius ppxlib ];
+ };
+
+ ppx_base = janePackage {
+ pname = "ppx_base";
+ hash = "0dkqc85x7bgbb6lgx9rghvj1q4dpdgy9qgjl88ywi4c8l9rgnnkz";
+ meta.description = "Base set of ppx rewriters";
+ propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ppx_js_style ];
+ };
+
+ ppx_bench = janePackage {
+ pname = "ppx_bench";
+ hash = "0snmy05d3jgihmppixx3dzamkykijqa2v43vpd7q4z8dpnip620g";
+ meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
+ propagatedBuildInputs = [ ppx_inline_test ];
+ };
+
+ ppx_sexp_message = janePackage {
+ pname = "ppx_sexp_message";
+ hash = "03jhx3ajcv22iwxkg1jf1jjvd14gyrwi1yc6c5ryqi5ha0fywfw6";
+ meta.description = "A ppx rewriter for easy construction of s-expressions";
+ propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
+ };
+
+ splittable_random = janePackage {
+ pname = "splittable_random";
+ hash = "1kgcd6k31vsd7638g8ip77bp1b7vzgkbvgvij4jm2igl09132r85";
+ meta.description = "PRNG that can be split into independent streams";
+ propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
+ };
+
+ ppx_let = janePackage {
+ pname = "ppx_let";
+ hash = "0qplsvbv10h7kwf6dhhgvi001gfphv1v66s83zjr5zbypyaarg5y";
+ meta.description = "Monadic let-bindings";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ base_quickcheck = janePackage {
+ pname = "base_quickcheck";
+ hash = "0ik8llm01m2xap4gia0vpsh7yq311hph7a2kf5109ag4988s8p0w";
+ meta.description = "Randomized testing framework, designed for compatibility with Base";
+ propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let splittable_random ];
+ };
+
+ ppx_stable = janePackage {
+ pname = "ppx_stable";
+ hash = "0h7ls1bs0bsd8c4na4aj0nawwhvfy50ybm7sza7yz3qli9jammjk";
+ meta.description = "Stable types conversions generator";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ bin_prot = janePackage {
+ pname = "bin_prot";
+ hash = "1nnr21rljlfglmhiji27d7c1d6gg5fk4cc5rl3750m98w28mfdjw";
+ meta.description = "A binary protocol generator";
+ propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
+ };
+
+ ppx_bin_prot = janePackage {
+ pname = "ppx_bin_prot";
+ hash = "14nfjgqisdqqg8wg4qzvc859zil82y0qpr8fm4nhq05mgxp37iyc";
+ meta.description = "Generation of bin_prot readers and writers from types";
+ propagatedBuildInputs = [ bin_prot ppx_here ];
+ };
+
+ ppx_fail = janePackage {
+ pname = "ppx_fail";
+ hash = "165mikjg4a1lahq3n9q9y2h36jbln5g3l2hapx17irvf0l0c3vn5";
+ meta.description = "Add location to calls to failwiths";
+ propagatedBuildInputs = [ ppx_here ];
+ };
+
+ jst-config = janePackage {
+ pname = "jst-config";
+ hash = "15lj6f83hz555xhjy9aayl3adqwgl1blcjnja693a1ybi3ca8w0y";
+ meta.description = "Compile-time configuration for Jane Street libraries";
+ buildInputs = [ ppx_assert ];
+ };
+
+ ppx_optcomp = janePackage {
+ pname = "ppx_optcomp";
+ hash = "13db395swqf7v87pgl9qiyj4igmvj57hpl8blx3kkrzj6ddh38a8";
+ meta.description = "Optional compilation for OCaml";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ jane-street-headers = janePackage {
+ pname = "jane-street-headers";
+ hash = "1qjg2ari0xn40dlbk0h9xkwr37k97ldkxpkv792fbl6wc2jlv3x5";
+ meta.description = "Jane Street C header files";
+ };
+
+ time_now = janePackage {
+ pname = "time_now";
+ hash = "1if234kz1ssmv22c0vh1cwhbivab6yy3xvy37ny1q4k5ibjc3v0n";
+ meta.description = "Reports the current time";
+ buildInputs = [ jst-config ppx_optcomp ];
+ propagatedBuildInputs = [ jane-street-headers base ppx_base ];
+ };
+
+ ppx_module_timer = janePackage {
+ pname = "ppx_module_timer";
+ hash = "13kv5fzwf41wsaksj41hnvcpx8pnbmzcainlq6f5shj9671hpnhb";
+ meta.description = "Ppx rewriter that records top-level module startup times";
+ propagatedBuildInputs = [ time_now ];
+ };
+
+ ppx_optional = janePackage {
+ pname = "ppx_optional";
+ hash = "1nwb9jvmszxddj9wxgv9g02qhr10yymm2q1w1gjfqd97m2m1mx4n";
+ meta.description = "Pattern matching on flat options";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_pipebang = janePackage {
+ pname = "ppx_pipebang";
+ hash = "0ybj0flsi95pf13ayzz1lcrqhqvkv1lm2dz6y8w49f12583496mc";
+ meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
+ propagatedBuildInputs = [ ppxlib ];
+ };
+
+ ppx_sexp_value = janePackage {
+ pname = "ppx_sexp_value";
+ hash = "18k5015awv9yjl44cvdmp3pn894cgsxmn5s7picxapm9675xqcg9";
+ meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
+ propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
+ };
+
+ typerep = janePackage {
+ pname = "typerep";
+ hash = "116hlifww2cqq1i9vwpl7ziwkc1na7p9icqi9srpdxnvn8ibcsas";
+ meta.description = "Typerep is a library for runtime types";
+ propagatedBuildInputs = [ base ];
+ };
+
+ ppx_typerep_conv = janePackage {
+ pname = "ppx_typerep_conv";
+ hash = "1jlmga9i79inr412l19n4vvmgafzp1bznqxwhy42x309wblbhxx9";
+ meta.description = "Generation of runtime types from type declarations";
+ propagatedBuildInputs = [ ppxlib typerep ];
+ };
+
+ ppx_jane = janePackage {
+ pname = "ppx_jane";
+ hash = "1a86rvnry8lvjhsg2k73f5bgz7l2962k5i49yzmzn8w66kj0yz60";
+ meta.description = "Standard Jane Street ppx rewriters";
+ propagatedBuildInputs = [ base_quickcheck ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_sexp_value ppx_stable ppx_typerep_conv ];
+ };
+
+ base_bigstring = janePackage {
+ pname = "base_bigstring";
+ hash = "1i3zr8bn71l442vl5rrvjpwphx20frp2vaw1qc05d348j76sxfp7";
+ meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
+ propagatedBuildInputs = [ ppx_jane ];
+ };
+
+ parsexp = janePackage {
+ pname = "parsexp";
+ hash = "0fsxy5lpsvfadj8m2337j8iprs294dfikqxjcas7si74nskx6l38";
+ meta.description = "S-expression parsing library";
+ propagatedBuildInputs = [ base sexplib0 ];
+ };
+
+ sexplib = janePackage {
+ pname = "sexplib";
+ hash = "059ypcyirw00x6dqa33x49930pwxcr3i72qz5pf220js2ai2nzhn";
+ meta.description = "Library for serializing OCaml values to and from S-expressions";
+ propagatedBuildInputs = [ num parsexp ];
+ };
+
+ core_kernel = janePackage {
+ version = "0.13.1";
+ pname = "core_kernel";
+ hash = "1ynyz6jkf23q0cwbn6kv06mgyjd644qxb0qkrydq0cglcaa4kjhp";
+ meta.description = "System-independent part of Core";
+ buildInputs = [ jst-config ];
+ propagatedBuildInputs = [ base_bigstring sexplib ];
+ };
+
+ spawn = janePackage {
+ pname = "spawn";
+ hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
+ meta.description = "Spawning sub-processes";
+ buildInputs = [ ppx_expect ];
+ };
+
+ core = janePackage {
+ pname = "core";
+ hash = "1i5z9myl6i7axd8dz4b71gdsz9la6k07ib9njr4bn12yn0y76b1m";
+ meta.description = "System-independent part of Core";
+ buildInputs = [ jst-config ];
+ propagatedBuildInputs = [ core_kernel spawn ];
+ };
+
+ async_kernel = janePackage {
+ pname = "async_kernel";
+ hash = "1rrbyy3pyh31qwv0jiarhpgdyq2z2gx6axmaplgpxshk4qx6gsld";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ core_kernel ];
+ };
+
+ protocol_version_header = janePackage {
+ pname = "protocol_version_header";
+ hash = "19wscd81jlj355f9din1sg21m3af456a0id2a37bx38r390wrghc";
+ meta.description = "Protocol versioning";
+ propagatedBuildInputs = [ core_kernel ];
+ };
+
+ async_rpc_kernel = janePackage {
+ pname = "async_rpc_kernel";
+ hash = "1k3f2psyd1xcf7nkk0q1fq57yyhfqbzyynsz821n7mrnm37simac";
+ meta.description = "Platform-independent core of Async RPC library";
+ propagatedBuildInputs = [ async_kernel protocol_version_header ];
+ };
+
+ async_unix = janePackage {
+ pname = "async_unix";
+ version = "0.13.1";
+ hash = "1sb8grbj4bv6ih3yfdihxhn5c9rqczr56b5bhl85wy2mi92m17xv";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ async_kernel core ];
+ };
+
+ async_extra = janePackage {
+ pname = "async_extra";
+ hash = "06q1farx7dwi4h490xi1azq7ym57ih2d23sq17g2jfvw889kf4n1";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ async_rpc_kernel async_unix ];
+ };
+
+ textutils = janePackage {
+ pname = "textutils";
+ hash = "1wnyqj9dzfgl0kddmdl4n9rkl16hwy432dd2i4ksvk2z5g9kkb0d";
+ meta.description = "Text output utilities";
+ propagatedBuildInputs = [ core ];
+ };
+
+ async = janePackage {
+ pname = "async";
+ hash = "002j9yxpw0ghi12a84163vaqa3n9h8j35f4i72nbxnilxwvy95sr";
+ meta.description = "Monadic concurrency library";
+ propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ];
+ };
+
+ async_find = janePackage {
+ pname = "async_find";
+ hash = "0l8cfhyrx2rb2avdcfx5m70aj6rx2d57qxqvfycad5afqz4xx2n9";
+ meta.description = "Directory traversal with Async";
+ propagatedBuildInputs = [ async ];
+ };
+
+ re2 = janePackage {
+ pname = "re2";
+ hash = "0hmizznlzilynn5kh6149bbpkfw2l0xi7zi1y1fxfww2ma3wpim0";
+ meta.description = "OCaml bindings for RE2, Google's regular expression library";
+ propagatedBuildInputs = [ core_kernel ];
+ prePatch = ''
+ substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
+ substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
+ '';
+ };
+
+ shell = janePackage {
+ pname = "shell";
+ hash = "190ymhm0z9b7hngbcpg88wwrfxwfcdh339d7rd2xhmrhi4z99r18";
+ meta.description = "Yet another implementation of fork&exec and related functionality";
+ buildInputs = [ jst-config ];
+ propagatedBuildInputs = [ re2 textutils ];
+ };
+
+ async_shell = janePackage {
+ pname = "async_shell";
+ hash = "0bfxyvdmyv23zfr49pb4c3bgfkjr4s3nb3z07xrw6szia3j1kp4j";
+ meta.description = "Shell helpers for Async";
+ propagatedBuildInputs = [ async shell ];
+ };
+
+ async_ssl = janePackage {
+ pname = "async_ssl";
+ useDune2 = true;
+ hash = "0z5dbiam5k7ipx9ph4r8nqv0a1ldx1ymxw3xjxgrdjda90lmwf2k";
+ meta.description = "Async wrappers for SSL";
+ buildInputs = [ dune-configurator ];
+ propagatedBuildInputs = [ async ctypes openssl ];
+ };
+
+ core_bench = janePackage {
+ pname = "core_bench";
+ hash = "1nk0i3z8rqrljbf4bc7ljp71g0a4361nh85s2ang0lgxri74zacm";
+ meta.description = "Benchmarking library";
+ propagatedBuildInputs = [ textutils ];
+ };
+
+ core_extended = janePackage {
+ pname = "core_extended";
+ hash = "0zh1wwkg5cxkz633dl9zbbl65aksvzb5mss1q8f7w6i1sv3n0135";
+ meta.description = "Extra components that are not as closely vetted or as stable as Core";
+ propagatedBuildInputs = [ core ];
+ };
+
+ sexp_pretty = janePackage {
+ pname = "sexp_pretty";
+ hash = "1a59xc9frmvi7n0i32dzs8gpf5ral80xkwv97a13zv5cyg8l6216";
+ meta.description = "S-expression pretty-printer";
+ propagatedBuildInputs = [ ppx_base re sexplib ];
+ };
+
+ expect_test_helpers_kernel = janePackage {
+ pname = "expect_test_helpers_kernel";
+ hash = "11m0i7mj6b1cmqnwhmsrqdc814s0lk3sip8rh97k75grngazmjvn";
+ meta.description = "Helpers for writing expectation tests";
+ buildInputs = [ ppx_jane ];
+ propagatedBuildInputs = [ core_kernel sexp_pretty ];
+ };
+
+ expect_test_helpers = janePackage {
+ pname = "expect_test_helpers";
+ hash = "0sw9yam8d9hdam8p194q0hgc4i26vvwj5qi2cba1jxfhdzhy8jdd";
+ meta.description = "Async helpers for writing expectation tests";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ };
+
+ patience_diff = janePackage {
+ pname = "patience_diff";
+ hash = "012rlbnw21yq2lsbfk3f7l4m4qq3jdx238146z36v54vnhhs6r2r";
+ meta.description = "Diff library using Bram Cohen's patience diff algorithm";
+ propagatedBuildInputs = [ core_kernel ];
+ };
+
+ ecaml = janePackage {
+ pname = "ecaml";
+ hash = "0jmmsi1m7d4cl5mnw6v9h4ng29anwxy73a6qfi28lgpzafn452bc";
+ meta.description = "Library for writing Emacs plugin in OCaml";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ };
+
+ ### Packages at version 0.11, with dependencies at version 0.12
+
+ configurator = janePackage {
+ pname = "configurator";
+ version = "0.11.0";
+ hash = "0h686630cscav7pil8c3w0gbh6rj4b41dvbnwmicmlkc746q5bfk";
+ propagatedBuildInputs = [ stdio ];
+ meta.description = "Helper library for gathering system configuration";
+ };
+
+ ppx_core = janePackage {
+ pname = "ppx_core";
+ version = "0.11.0";
+ hash = "11hgm9mxig4cm3c827f6dns9mjv3pf8g6skf10x0gw9xnp1dmzmx";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_driver = janePackage {
+ pname = "ppx_driver";
+ version = "0.11.0";
+ hash = "00kfx6js2kxk57k4v7hiqvwk7h35whgjihnxf75m82rnaf4yzvfi";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_type_conv = janePackage {
+ pname = "ppx_type_conv";
+ version = "0.11.0";
+ hash = "04dbrglqqhkas25cpjz8xhjcbpk141c35qggzw66bn69izczfmaf";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix
new file mode 100644
index 000000000000..70780ee385fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane, async_kernel, bin_prot, core_kernel,
+ fieldslib, ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test,
+ ppx_jane, sexplib, typerep, variantslib}:
+
+buildOcamlJane {
+ name = "async_rpc_kernel";
+ hash = "0pvys7giqix1nfidw1f4i3r94cf03ba1mvhadpm2zpdir3av91sw";
+ propagatedBuildInputs = [ async_kernel bin_prot core_kernel fieldslib
+ ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane
+ sexplib typerep variantslib ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/janestreet/async_rpc_kernel";
+ description = "Platform-independent core of Async RPC library";
+ license = licenses.asl20;
+ maintainers = [ maintainers.maurer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/bin_prot.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/bin_prot.nix
new file mode 100644
index 000000000000..1eb6b6a95f86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/bin_prot.nix
@@ -0,0 +1,17 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane {
+ name = "bin_prot";
+ version = "113.33.03";
+ minimumSupportedOcamlVersion = "4.02";
+ hash = "0jlarpfby755j0kikz6vnl1l6q0ga09b9zrlw6i84r22zchnqdsh";
+
+ propagatedBuildInputs = [ type_conv ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/janestreet/bin_prot";
+ description = "Binary protocol generator ";
+ license = licenses.asl20;
+ maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix
new file mode 100644
index 000000000000..fdb0d8034e69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix
@@ -0,0 +1,27 @@
+{ buildOcaml, opaline, js_build_tools, ocaml_oasis, fetchurl } :
+
+{ name, version ? "113.33.03", buildInputs ? [],
+ hash ? "",
+ minimumSupportedOcamlVersion ? "4.02", ...
+}@args:
+
+buildOcaml (args // {
+ inherit name version minimumSupportedOcamlVersion;
+ src = fetchurl {
+ url = "https://github.com/janestreet/${name}/archive/${version}.tar.gz";
+ sha256 = hash;
+ };
+
+ hasSharedObjects = true;
+
+ buildInputs = [ ocaml_oasis js_build_tools opaline ] ++ buildInputs;
+
+ dontAddPrefix = true;
+
+ configurePhase = "./configure --prefix $out";
+
+ buildPhase = "OCAML_TOPLEVEL_PATH=`ocamlfind query findlib`/.. make";
+
+ installPhase = "opaline -prefix $prefix -libdir $OCAMLFIND_DESTDIR ${name}.install";
+
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/core_bench.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/core_bench.nix
new file mode 100644
index 000000000000..1956a7f3b705
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/core_bench.nix
@@ -0,0 +1,20 @@
+{ stdenv
+, buildOcamlJane
+, core
+, core_extended
+, textutils
+}:
+
+buildOcamlJane {
+ name = "core_bench";
+ hash = "1d1ainpakgsf5rg8dvar12ksgilqcc4465jr8gf7fz5mmn0mlifj";
+ propagatedBuildInputs =
+ [ core core_extended textutils ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/janestreet/core_bench";
+ description = "Micro-benchmarking library for OCaml";
+ license = licenses.asl20;
+ maintainers = [ maintainers.pmahoney ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
new file mode 100644
index 000000000000..837504f9a7fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -0,0 +1,604 @@
+{ janePackage, ocamlbuild, angstrom, cryptokit, ctypes,
+ magic-mime, ocaml-migrate-parsetree, octavius, ounit, ppx_deriving, re,
+ num, openssl
+, ppxlib
+}:
+
+rec {
+
+ ocaml-compiler-libs = janePackage {
+ pname = "ocaml-compiler-libs";
+ hash = "03jds7bszh8wwpfwxb3dg0gyr1j1872wxwx1xqhry5ir0i84bg0s";
+ meta.description = "OCaml compiler libraries repackaged";
+ };
+
+ sexplib0 = janePackage {
+ pname = "sexplib0";
+ meta.description = "Library containing the definition of S-expressions and some base converters";
+ hash = "07v3ggyss7xhfv14bjk1n87sr42iqwj4cgjiv2lcdfkqk49i2bmi";
+ };
+
+ parsexp = janePackage {
+ pname = "parsexp";
+ hash = "1nyq23s5igd8cf3n4qxprjvhbmb6ighb3fy5mw7hxl0mdgsw5fvz";
+ propagatedBuildInputs = [ sexplib0 ];
+ meta.description = "S-expression parsing library";
+ };
+
+ sexplib = janePackage {
+ pname = "sexplib";
+ meta.description = "Library for serializing OCaml values to and from S-expressions";
+ hash = "1qfl0m04rpcjvc4yw1hzh6r16jpwmap0sa9ax6zjji67dz4szpyb";
+ propagatedBuildInputs = [ num parsexp ];
+ };
+
+ base = janePackage {
+ version = "0.11.1";
+ pname = "base";
+ hash = "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir";
+ propagatedBuildInputs = [ sexplib0 ];
+ meta.description = "Full standard library replacement for OCaml";
+ };
+
+ stdio = janePackage {
+ pname = "stdio";
+ hash = "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn";
+ propagatedBuildInputs = [ base ];
+ meta.description = "Standard IO library for OCaml";
+ };
+
+ configurator = janePackage {
+ pname = "configurator";
+ hash = "0h686630cscav7pil8c3w0gbh6rj4b41dvbnwmicmlkc746q5bfk";
+ propagatedBuildInputs = [ stdio ];
+ meta.description = "Helper library for gathering system configuration";
+ };
+
+ ppx_compare = janePackage {
+ pname = "ppx_compare";
+ version = "0.11.1";
+ hash = "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ base ppx_deriving ];
+ meta.description = "Generation of comparison functions from types";
+ };
+
+ ppx_sexp_conv = janePackage {
+ pname = "ppx_sexp_conv";
+ version = "0.11.2";
+ hash = "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9";
+ propagatedBuildInputs = [ sexplib0 ppxlib ppx_deriving ];
+ meta.description = "Generation of S-expression conversion functions from type definitions";
+ };
+
+ variantslib = janePackage {
+ pname = "variantslib";
+ hash = "0hbsk34ghc28h8pzbma923ma2bgnz8lzrgcqqx9bzg161jl4s4r3";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ base ];
+ meta.description = "OCaml variants as first class values";
+ };
+
+ ppx_variants_conv = janePackage {
+ pname = "ppx_variants_conv";
+ version = "0.11.1";
+ hash = "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ ppx_deriving variantslib ];
+ meta.description = "Generation of accessor and iteration functions for OCaml variant types";
+ };
+
+ fieldslib = janePackage {
+ pname = "fieldslib";
+ hash = "1yvjvfax56lmn2lxbykcmhgmxypws1vp9lhnyb8bhbavsv8yc6da";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "OCaml record fields as first class values";
+ };
+
+ ppx_fields_conv = janePackage {
+ pname = "ppx_fields_conv";
+ hash = "1bb9cmn4js7p3qh8skzyik1pcz6sj1k4xkhf12fg1bjmb5fd0jx1";
+ propagatedBuildInputs = [ fieldslib ];
+ meta.description = "Generation of accessor and iteration functions for OCaml records";
+ };
+
+ ppx_custom_printf = janePackage {
+ pname = "ppx_custom_printf";
+ hash = "1dvjzvaxhx53jqwrrlxdckwl1azrhs9kvwb48mhgd0jnz65ny726";
+ propagatedBuildInputs = [ ppx_sexp_conv ];
+ meta.description = "Printf-style format-strings for user-defined string conversion";
+ };
+
+ bin_prot = janePackage {
+ pname = "bin_prot";
+ hash = "1mgbyzsr8h0y4s4j9dv7hsdrxyzhhjww5khwg2spi2my7ia95m0l";
+ propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
+ meta.description = "Binary protocol generator";
+ };
+
+ jane-street-headers = janePackage {
+ pname = "jane-street-headers";
+ hash = "0kij4c7qxrja787f3sm3z6mzr322486h2djrlyhnl66vp8hrv8si";
+ meta.description = "Jane Street header files";
+ };
+
+ ppx_here = janePackage {
+ pname = "ppx_here";
+ hash = "04njv8s4n54x9rg0012ymd6y6lrnqprnh0f0f6s0jcp79q7mv43i";
+ buildInputs = [ ppxlib ];
+ meta.description = "Expands [%here] into its location";
+ };
+
+ ppx_assert = janePackage {
+ pname = "ppx_assert";
+ hash = "0qbdrl0rj0midnb6sdyaz00s0d4nb8zrrdf565lcdsi1rbnyrzan";
+ buildInputs = [ ppx_here ];
+ propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+ meta.description = "Assert-like extension nodes that raise useful errors on failure";
+ };
+
+ ppx_hash = janePackage {
+ version = "0.11.1";
+ pname = "ppx_hash";
+ hash = "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p";
+ propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+ meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
+ };
+
+ ppx_inline_test = janePackage {
+ pname = "ppx_inline_test";
+ hash = "11n94fz1asjf5vqdgriv0pvsa5lbfpqcyk525c7816w23vskcvq6";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ base ];
+ meta.description = "Syntax extension for writing in-line tests in OCaml code";
+ };
+
+ ppx_sexp_message = janePackage {
+ pname = "ppx_sexp_message";
+ hash = "0d94pf0mrmyp905ncgj4w6cc6zpm4nlib6nclslhgs89pxpzg6a0";
+ buildInputs = [ ppx_here ];
+ propagatedBuildInputs = [ ppx_sexp_conv ];
+ meta.description = "A ppx rewriter for easy construction of s-expressions";
+ };
+
+ typerep = janePackage {
+ pname = "typerep";
+ hash = "00j4by75fl9niqvlpiyw6ymlmlmgfzysm8w25cj5wsfsh4yrgr74";
+ propagatedBuildInputs = [ base ];
+ meta.description = "Runtime types for OCaml";
+ };
+
+ ppx_typerep_conv = janePackage {
+ version = "0.11.1";
+ pname = "ppx_typerep_conv";
+ hash = "0a13dpfrrg0rsm8qni1bh7pqcda30l70z8r6yzi5a64bmwk7g5ah";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ ppx_deriving typerep ];
+ meta.description = "Generation of runtime types from type declarations";
+ };
+
+ ppx_js_style = janePackage {
+ pname = "ppx_js_style";
+ hash = "1cwqyrkykc8wi60grbid1w072fcvf7k0hd387jz7mxfw44qyb85g";
+ propagatedBuildInputs = [ ppxlib octavius ];
+ meta.description = "Code style checker for Jane Street Packages";
+ };
+
+ ppx_enumerate = janePackage {
+ version = "0.11.1";
+ pname = "ppx_enumerate";
+ hash = "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ ppx_deriving ];
+ meta.description = "Generate a list containing all values of a finite type";
+ };
+
+ ppx_base = janePackage {
+ pname = "ppx_base";
+ hash = "079caqjbxk1d33hy69017n3dwslqy52alvzjddwpdjb04vjadlk6";
+ propagatedBuildInputs = [ ppx_compare ppx_enumerate ppx_hash ppx_js_style ];
+ meta.description = "Base set of ppx rewriters";
+ };
+
+ ppx_bench = janePackage {
+ pname = "ppx_bench";
+ hash = "0z98r6y4lpj6dy265m771ylx126hq3v1zjsk74yqvpwwd63gx3jz";
+ buildInputs = [ ppxlib ppx_inline_test ];
+ meta.description = "Syntax extension for writing in-line benchmarks in OCaml code";
+ };
+
+ ppx_bin_prot = janePackage {
+ version = "0.11.1";
+ pname = "ppx_bin_prot";
+ hash = "1h60i75bzvhna1axyn662gyrzhh441l79vl142d235i5x31dmnkz";
+ buildInputs = [ ppxlib ppx_here ];
+ propagatedBuildInputs = [ bin_prot ];
+ meta.description = "Generation of bin_prot readers and writers from types";
+ };
+
+ ppx_expect = janePackage {
+ pname = "ppx_expect";
+ hash = "1g0r67vfw9jr75pybiw4ysfiswlzyfpbj0gl91rx62gqdhjh1pga";
+ buildInputs = [ ppx_assert ppx_custom_printf ppx_fields_conv ppx_here ppx_variants_conv re ];
+ propagatedBuildInputs = [ fieldslib ppx_compare ppx_inline_test ppx_sexp_conv ];
+ meta.description = "Cram like framework for OCaml";
+ };
+
+ ppx_fail = janePackage {
+ pname = "ppx_fail";
+ hash = "0d0xadcl7mhp81kspcd2b0nh75h34w5a6s6j9qskjjbjif87wiix";
+ buildInputs = [ ppxlib ppx_here ];
+ meta.description = "Add location to calls to failwiths";
+ };
+
+ ppx_let = janePackage {
+ pname = "ppx_let";
+ hash = "1ckzwljlb78cdf6xxd24nddnmsihvjrnq75r1b255aj3xgkzsygx";
+ propagatedBuildInputs = [ base ppxlib ];
+ meta.description = "Monadic let-bindings";
+ };
+
+ ppx_optcomp = janePackage {
+ pname = "ppx_optcomp";
+ hash = "1rahkjq6vpffs7wdz1crgbxkdnlfkj1i3j12c2andy4fhj49glcm";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ ppx_deriving ];
+ meta.description = "Optional compilation for OCaml";
+ };
+
+ ppx_optional = janePackage {
+ pname = "ppx_optional";
+ hash = "0aw3hvrsdjpw4ik7rf15ghak31vhdr1lgpphr18mj76rnlrhirmx";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Pattern matching on flat options";
+ };
+
+ ppx_pipebang = janePackage {
+ pname = "ppx_pipebang";
+ hash = "0smgq587amlr3hivbbg153p83dj37w30cssp9cffc0v8kg84lfhr";
+ buildInputs = [ ppxlib ];
+ meta.description = "A ppx rewriter that inlines reverse application operators |> and |!";
+ };
+
+ ppx_sexp_value = janePackage {
+ pname = "ppx_sexp_value";
+ hash = "107zwb580nrmc0l03dl3y3hf12s3c1vv8b8mz6sa4k5afp3s9nkl";
+ buildInputs = [ ppx_here ];
+ propagatedBuildInputs = [ ppx_sexp_conv ];
+ meta.description = "A ppx rewriter that simplifies building s-expressions from OCaml values";
+ };
+
+ ppx_jane = janePackage {
+ pname = "ppx_jane";
+ hash = "0l1p6llaa60mrc5p9400cqv9yy6h76x5wfq3z1cx5xawy0yz4vlb";
+ buildInputs = [ ppxlib ];
+ propagatedBuildInputs = [ ppx_assert ppx_base ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_here ppx_let ppx_optcomp ppx_optional ppx_pipebang ppx_sexp_message ppx_sexp_value ppx_typerep_conv ];
+ meta.description = "Standard Jane Street ppx rewriters";
+ };
+
+ splittable_random = janePackage {
+ pname = "splittable_random";
+ hash = "1yrvpm6g62f8k6ihccxhfxpvmxbqxhi7p790a8jkdmyfdd1l6z73";
+ propagatedBuildInputs = [ ppx_jane ];
+ meta.description = "PRNG that can be split into independent streams";
+ };
+
+ core_kernel = janePackage {
+ version = "0.11.1";
+ pname = "core_kernel";
+ hash = "1dg7ygy7i64c5gaakb1cp1b26p9ks81vbxmb8fd7jff2q60j2z2g";
+ propagatedBuildInputs = [ configurator jane-street-headers sexplib splittable_random ];
+ meta.description = "Jane Street's standard library overlay (kernel)";
+ };
+
+ spawn = janePackage {
+ version = "0.12.0";
+ pname = "spawn";
+ hash = "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i";
+ meta.description = "Spawning sub-processes";
+ };
+
+ core = janePackage {
+ version = "0.11.2";
+ pname = "core";
+ hash = "0vpsvd75lxb09il2rnzyib9mlr51v1hzqdc9fdxgx353pb5agh8a";
+ propagatedBuildInputs = [ core_kernel spawn ];
+ meta.description = "Jane Street's standard library overlay";
+ };
+
+ textutils_kernel = janePackage {
+ pname = "textutils_kernel";
+ hash = "0s1ps7h54vgl76pll3y5qa1bw8f4h8wxc8mg8jq6bz8vxvl0dfv4";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "The subset of textutils using only core_kernel and working in javascript";
+ };
+
+ textutils = janePackage {
+ pname = "textutils";
+ hash = "1jmhpaihnndf4pr8xsk7ws70n4mvv34ry0ggqqpfs3wb2vkcdg6j";
+ propagatedBuildInputs = [ core textutils_kernel ];
+ meta.description = "Text output utilities";
+ };
+
+ re2 = janePackage {
+ pname = "re2";
+ hash = "0bl65d0nmvr7k1mkkcc4aai86l5qzgn1xxwmszshpwhaz87cqghd";
+ propagatedBuildInputs = [ core_kernel ];
+ prePatch = ''
+ substituteInPlace src/re2_c/jbuild --replace 'CXX=g++' 'CXX=c++'
+ substituteInPlace src/jbuild --replace '(cxx_flags ((:standard \ -pedantic) (-I re2_c/libre2)))' '(cxx_flags ((:standard \ -pedantic) (-I re2_c/libre2) (-x c++)))'
+ '';
+ meta.description = "OCaml bindings for RE2";
+ };
+
+ core_extended = janePackage {
+ pname = "core_extended";
+ hash = "1fvnr6zkpbl48dl7nn3j1dpsrr6bi00iqh282wg5lgdhcsjbc0dy";
+ propagatedBuildInputs = [ core re re2 textutils ];
+ postPatch = ''
+ patchShebangs src/discover.sh
+ '';
+ meta.description = "Jane Street Capital's standard library overlay";
+ };
+
+ async_kernel = janePackage {
+ version = "0.11.1";
+ pname = "async_kernel";
+ hash = "1ssv0gqbdns6by1wdjrrs35cj1c1n1qcfkxs8hj04b7x89wzvf1q";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Jane Street Capital's asynchronous execution library (core)";
+ };
+
+ protocol_version_header = janePackage {
+ pname = "protocol_version_header";
+ hash = "159qmkb0dsfmr1lv2ly50aqszpm24bvrm3sw07n2zhkxgy6q613z";
+ propagatedBuildInputs = [ core_kernel ocaml-migrate-parsetree ];
+ meta.description = "Protocol aware version negotiation";
+ };
+
+ async_rpc_kernel = janePackage {
+ pname = "async_rpc_kernel";
+ hash = "0wl7kp30qxkalk91q5pja9agsvvmdjvb2q7s3m79dlvwwi11l33y";
+ propagatedBuildInputs = [ core_kernel async_kernel protocol_version_header ];
+ meta.description = "Platform-independent core of Async RPC library";
+ };
+
+ async_unix = janePackage {
+ pname = "async_unix";
+ hash = "1y5za5fdh0x82zdjigxci9zm9jnpfd2lfgpjcq4rih3s28f16sf7";
+ propagatedBuildInputs = [ core async_kernel ];
+ meta.description = "Jane Street Capital's asynchronous execution library (unix)";
+ };
+
+ async_extra = janePackage {
+ version = "0.11.1";
+ pname = "async_extra";
+ hash = "0dmplvqf41820rm5i0l9bx1xmmdlq8zsszi36y2rkjna8991f7s2";
+ propagatedBuildInputs = [ async_rpc_kernel async_unix ];
+ meta.description = "Jane Street's asynchronous execution library (extra)";
+ };
+
+ async = janePackage {
+ pname = "async";
+ hash = "1i05hzk4mhzj1mw98b2bdbxhnq03jvhkkkw4d948i6265jzrrbv5";
+ propagatedBuildInputs = [ async_extra ];
+ meta.description = "Jane Street Capital's asynchronous execution library";
+ };
+
+ async_find = janePackage {
+ pname = "async_find";
+ hash = "0s0qafx74ri1vr2vv3iy1j7s3p6gp7vyg0mw5g17iafk0w6lv2iq";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Directory traversal with Async";
+ };
+
+ async_interactive = janePackage {
+ pname = "async_interactive";
+ hash = "01rlfcylpiak6a2n6q3chp73cvkhvb65n906dj0flmxmagn7dxd1";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Utilities for building simple command-line based user interfaces";
+ };
+
+ async_parallel = janePackage {
+ pname = "async_parallel";
+ hash = "0hak8ba3rfzqhz5hz2annqmsv5bkqzdihhafp0f58ryrlskafwag";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Distributed computing library";
+ };
+
+ async_shell = janePackage {
+ pname = "async_shell";
+ hash = "1jb01ygfnhabsy72xlcg11vp7rr37sg555sm0k3yxl4r5az3y2ay";
+ propagatedBuildInputs = [ core_extended async ];
+ meta.description = "Shell helpers for Async";
+ };
+
+ async_ssl = janePackage {
+ pname = "async_ssl";
+ hash = "1p83fzfla4rb820irdrz3f2hp8kq5zrhw47rqmfv6qydlca1bq64";
+ propagatedBuildInputs = [ async ctypes openssl ];
+ meta.description = "Async wrappers for SSL";
+ };
+
+ sexp_pretty = janePackage {
+ pname = "sexp_pretty";
+ hash = "0xskahjggbwvvb82fn0jp1didxbgpmgks76xhwp9s3vqkhgz6918";
+ propagatedBuildInputs = [ ppx_base re sexplib ];
+ meta.description = "S-expression pretty-printer";
+ };
+
+ expect_test_helpers_kernel = janePackage {
+ pname = "expect_test_helpers_kernel";
+ hash = "0m113vq4m1xm3wmwa08r6qjc7p5f0y3ss8s4i2z591ycgs2fxzlj";
+ propagatedBuildInputs = [ core_kernel sexp_pretty ];
+ meta.description = "Helpers for writing expectation tests";
+ };
+
+ expect_test_helpers = janePackage {
+ pname = "expect_test_helpers";
+ hash = "13n6h7mimwkbsjdix96ghfrmxjd036m4h4zgl8qag00aacqclvpi";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ meta.description = "Async helpers for writing expectation tests";
+ };
+
+ cinaps = janePackage {
+ pname = "cinaps";
+ hash = "0f8cx4xkkk4wqpcbvva8kxdndbgawljp17dwppc6zpjpkjl8s84j";
+ propagatedBuildInputs = [ re ];
+ meta.description = "Trivial Metaprogramming tool using the OCaml toplevel";
+ };
+
+ command_rpc = janePackage {
+ pname = "command_rpc";
+ hash = "111v4km0ds8ixmpmwg9ck36ap97400mqzhijf57kj6wfwgzcmr2g";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Utilities for Versioned RPC communication with a child process over stdin and stdout";
+ };
+
+ # Deprecated libraries
+
+ ppx_ast = janePackage {
+ pname = "ppx_ast";
+ hash = "125bzswcwr3nb26ss8ydh8z4218c8fi3s2kvgqp1j1fhc5wwzqgj";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_core = janePackage {
+ pname = "ppx_core";
+ hash = "11hgm9mxig4cm3c827f6dns9mjv3pf8g6skf10x0gw9xnp1dmzmx";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_driver = janePackage {
+ pname = "ppx_driver";
+ hash = "00kfx6js2kxk57k4v7hiqvwk7h35whgjihnxf75m82rnaf4yzvfi";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_metaquot = janePackage {
+ pname = "ppx_metaquot";
+ hash = "1vz8bi56jsz8w0894vgbfsfvmdyh5k1dgv45l8vhkks0s7d3ldji";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_traverse = janePackage {
+ pname = "ppx_traverse";
+ hash = "1p2n5da4mxh9fk4gvxlibc706bs5xwkbppxd1x0ip1vln5pabbq5";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_traverse_builtins = janePackage {
+ pname = "ppx_traverse_builtins";
+ hash = "0qlf7i8h8k3a9h8nhb0ki3y1knr6wgbm24f1qaqni53fpvzv0pfb";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ ppx_type_conv = janePackage {
+ pname = "ppx_type_conv";
+ hash = "04dbrglqqhkas25cpjz8xhjcbpk141c35qggzw66bn69izczfmaf";
+ propagatedBuildInputs = [ ppxlib ];
+ meta.description = "Deprecated (see ppxlib)";
+ };
+
+ # Miscellaneous Jane Street packages
+
+ core_bench = janePackage {
+ pname = "core_bench";
+ hash = "10i28ssfdqxxhq0rvnlp581lr1cq2apkhmm8j83fksjkmbxcrasc";
+ propagatedBuildInputs = [ core_extended ];
+ meta.description = "Micro-benchmarking library for OCaml";
+ };
+
+ csvfields = janePackage {
+ pname = "csvfields";
+ hash = "10zw4fjlniivfdzzz79lnbvcjnhk5y16m1p8mn4xbs23n6mbix0f";
+ propagatedBuildInputs = [ core expect_test_helpers ];
+ meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
+ };
+
+ ecaml = janePackage {
+ pname = "ecaml";
+ hash = "1is5156q59s427x3q5nh9wsi8h1x77670bmyilqxasy39yway7g8";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ meta.description = "Writing Emacs plugin in OCaml";
+ };
+
+ email_message = janePackage {
+ pname = "email_message";
+ hash = "131jd72k4s8cdbgg6gyg7w5v8mphdlvdx4fgvh8d9a1m7kkvbxfg";
+ propagatedBuildInputs = [ async angstrom core_extended cryptokit magic-mime ounit ];
+ patches = [ ./email-message-angstrom-0.14.patch ];
+ meta.description = "E-mail message parser";
+ };
+
+ incremental_kernel = janePackage {
+ version = "0.11.1";
+ pname = "incremental_kernel";
+ hash = "1qp9dqncx2h0np0rndqaic4dna8f1dlkqnbjfcdhcim5dp2vg4x6";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Library for incremental computations depending only on core_kernel";
+ };
+
+ incremental = janePackage {
+ pname = "incremental";
+ hash = "1xchd3v4kj56wixjrsnj7m7l0374cgkzybihs2b62mn65xf6n7ki";
+ propagatedBuildInputs = [ core incremental_kernel ];
+ meta.description = "Library for incremental computations";
+ };
+
+ incr_map = janePackage {
+ pname = "incr_map";
+ hash = "01vx9aldxpigz5ah9h337xcw73a7r8449v8l2xbralljhs0zglx9";
+ propagatedBuildInputs = [ incremental_kernel ];
+ meta.description = "Helpers for incremental operations on map like data structures";
+ };
+
+ parsexp_io = janePackage {
+ pname = "parsexp_io";
+ hash = "0rhdl40jiirvv6fhgjk50n8wzs3jly5d8dyyyfgpjgl39mwkjjnb";
+ propagatedBuildInputs = [ parsexp ppx_js_style ];
+ meta.description = "S-expression parsing library (IO functions)";
+ };
+
+ patience_diff = janePackage {
+ pname = "patience_diff";
+ hash = "0q7a64fgg97qcd6d8c45gyz63x5vq004axxqvvfg92b8f3x2plx4";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Tool and library implementing patience diff";
+ };
+
+ posixat = janePackage {
+ pname = "posixat";
+ hash = "04rs4sl0r4rg9m6l9kkqkmc4n87sv4a4w9ibq4zsjk9j4n6r2df8";
+ propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv sexplib ];
+ meta.description = "Binding to the posix *at functions";
+ };
+
+ rpc_parallel = janePackage {
+ pname = "rpc_parallel";
+ hash = "13dx59x73i8mkwv2qkh8gx6kk8arlvghj57k1jdscdmzmyqc9gvn";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Type-safe library for building parallel applications";
+ };
+
+ shexp = janePackage {
+ version = "0.11.1";
+ pname = "shexp";
+ hash = "06yssp7bsmabaxvw9bqxyrsji1gkvl7if5adba3v6h4kilqy7rqg";
+ propagatedBuildInputs = [ posixat spawn ];
+ meta.description = "Process library and s-expression based shell";
+ };
+
+ topological_sort = janePackage {
+ pname = "topological_sort";
+ hash = "1qnz5b1rs45lsl1ycxd1lglpmh8444gy5khhdp5fvxy987zkzklz";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Topological sort algorithm";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch
new file mode 100644
index 000000000000..624a3e5334b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch
@@ -0,0 +1,22 @@
+diff --git a/email_address/src/email_address.ml b/email_address/src/email_address.ml
+index 7470273..d070465 100644
+--- a/email_address/src/email_address.ml
++++ b/email_address/src/email_address.ml
+@@ -38,7 +38,7 @@ module Stable = struct
+ let of_string ?default_domain input_str =
+ let open Core_kernel in
+ let open! Int.Replace_polymorphic_compare in
+- match Angstrom.parse_string Email_address_parser_stable_v1.email_only input_str with
++ match Angstrom.parse_string ~consume:Prefix Email_address_parser_stable_v1.email_only input_str with
+ | Error error ->
+ Or_error.error_s [%message
+ "Failed to parse email address"
+@@ -104,7 +104,7 @@ module T = Stable.V1.With_comparator
+ include T
+
+ let list_of_string ?default_domain input_str =
+- match Angstrom.parse_string Email_address_parser_stable_v1.email_list_only input_str with
++ match Angstrom.parse_string ~consume:Prefix Email_address_parser_stable_v1.email_list_only input_str with
+ | Error error ->
+ Or_error.error_s [%message
+ "Failed to parse email address(es)"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/fieldslib.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/fieldslib.nix
new file mode 100644
index 000000000000..39aeb7047177
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/fieldslib.nix
@@ -0,0 +1,19 @@
+{ stdenv, type_conv, buildOcamlJane }:
+
+buildOcamlJane {
+ name = "fieldslib";
+ version = "113.33.03";
+
+ minimumSupportedOcamlVersion = "4.02";
+
+ hash = "0mkbix32f8sq32q81hb10z2q31bw5f431jxv0jafbdrif0vr6xqd";
+
+ propagatedBuildInputs = [ type_conv ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://ocaml.janestreet.com/";
+ description = "OCaml syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
+ license = licenses.asl20;
+ maintainers = [ maintainers.maurer maintainers.vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix
new file mode 100644
index 000000000000..b3ffecb38ce9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.11.0" }:
+
+{ pname, version ? defaultVersion, hash, ...}@args:
+
+buildDunePackage (args // {
+ inherit version;
+
+ minimumOCamlVersion = "4.04";
+
+ src = fetchFromGitHub {
+ owner = "janestreet";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = hash;
+ };
+
+ meta.license = stdenv.lib.licenses.asl20;
+ meta.homepage = "https://github.com/janestreet/${pname}";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix
new file mode 100644
index 000000000000..5b7d9c3210d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix
@@ -0,0 +1,19 @@
+{ lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.12.0" }:
+
+{ pname, version ? defaultVersion, hash, ...}@args:
+
+buildDunePackage (args // {
+ inherit version;
+
+ minimumOCamlVersion = "4.07";
+
+ src = fetchFromGitHub {
+ owner = "janestreet";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = hash;
+ };
+
+ meta.license = lib.licenses.mit;
+ meta.homepage = "https://github.com/janestreet/${pname}";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix
new file mode 100644
index 000000000000..b92bcead95c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix
@@ -0,0 +1,19 @@
+{ lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.13.0" }:
+
+{ pname, version ? defaultVersion, hash, ...}@args:
+
+buildDunePackage (args // {
+ inherit version;
+
+ minimumOCamlVersion = "4.08";
+
+ src = fetchFromGitHub {
+ owner = "janestreet";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = hash;
+ };
+
+ meta.license = lib.licenses.mit;
+ meta.homepage = "https://github.com/janestreet/${pname}";
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch
new file mode 100644
index 000000000000..8878b4be68b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch
@@ -0,0 +1,11 @@
+--- a/ocamlbuild_goodies/jane_street_ocamlbuild_goodies.ml
++++ b/ocamlbuild_goodies/jane_street_ocamlbuild_goodies.ml
+@@ -65,7 +65,7 @@ let track_external_deps = function
+
+ let stat, md5sum =
+ match run_and_read "uname" |> String.trim with
+- | "Darwin" ->
++ | "FreeBSD" | "NetBSD" ->
+ (S [A "stat"; A "-f"; A "%d:%i:%m"],
+ A "md5")
+ | _ ->
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix
new file mode 100644
index 000000000000..f77b793bcaab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildOcaml, fetchurl, ocaml_oasis, opaline }:
+
+buildOcaml rec {
+ name = "js-build-tools";
+ version = "113.33.06";
+
+ minimumSupportedOcamlVersion = "4.02";
+
+ src = fetchurl {
+ url = "https://github.com/janestreet/${name}/archive/${version}.tar.gz";
+ sha256 = "1nvgyp4gsnlnpix3li6kr90b12iin5ihichv298p03i6h2809dia";
+ };
+
+ hasSharedObjects = true;
+
+ buildInputs = [ ocaml_oasis opaline ];
+
+ dontAddPrefix = true;
+ configurePhase = "./configure --prefix $prefix";
+ installPhase = "opaline -prefix $prefix -libdir $OCAMLFIND_DESTDIR ${name}.install";
+
+ patches = [ ./js-build-tools-darwin.patch ];
+
+ meta = with stdenv.lib; {
+ description = "Jane Street Build Tools";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/old.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/old.nix
new file mode 100644
index 000000000000..447a9cdf71f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/old.nix
@@ -0,0 +1,615 @@
+{ stdenv, lib, janePackage, ocaml, ocamlbuild, cryptokit, ctypes, magic-mime,
+ ocaml-migrate-parsetree, octavius, ounit, ppx_deriving, re, zarith, num,
+ openssl }:
+
+rec {
+
+ # Jane Street packages, up to ppx_core
+
+ sexplib = janePackage {
+ pname = "sexplib";
+ meta.description = "Automated S-expression conversion";
+ version = "0.10.0";
+ hash = "1agw649n0rnf6h4y2dr1zs1970nncxgjmf90848vbxv8y9im4yy2";
+ buildInputs = [ num ];
+ };
+
+ base = janePackage {
+ pname = "base";
+ version = "0.9.4";
+ hash = "0x85xi66b4zwlbdwmyc99zcmawgpp75gxqbl55rr67awavw162rw";
+ propagatedBuildInputs = [ sexplib ];
+ meta.description = "Full standard library replacement for OCaml";
+ };
+
+ ocaml-compiler-libs = janePackage {
+ pname = "ocaml-compiler-libs";
+ hash = "1jz3nfrb6295sj4xj1j0zld8mhfj0xy2k4vlp9yf9sh3748n090l";
+ meta.description = "OCaml compiler libraries repackaged";
+ };
+
+ ppx_ast = janePackage ({
+ pname = "ppx_ast";
+ propagatedBuildInputs = [ ocaml-compiler-libs ocaml-migrate-parsetree ];
+ meta.description = "OCaml AST used by Jane Street ppx rewriters";
+ } // (if lib.versionAtLeast ocaml.version "4.06"
+ then {
+ version = "0.9.2";
+ hash = "1h4qf26rg23z21rrw83fakiavw9km7174p3830pg0gg4bwakvba0";
+ } else {
+ version = "0.9.1";
+ hash = "0a9rxwavy2748k0yd4db3hg1ypq7mpqnwq9si5a5qdiclgkhcggw";
+ }
+ ));
+
+ ppx_traverse_builtins = janePackage {
+ pname = "ppx_traverse_builtins";
+ hash = "10ajvz02ka6qimlfrq7py4ljhk8awqkga6240kn8j046b4xfyxzi";
+ meta.description = "Builtins for Ppx_traverse";
+ };
+
+ stdio = janePackage {
+ pname = "stdio";
+ version = "0.9.1";
+ hash = "13rj3ii0rvmklfim9ild0ib44ssdadig7a9ccjbz22m0pw84a1sx";
+ propagatedBuildInputs = [ base ];
+ meta.description = "Standard IO library for OCaml";
+ };
+
+ ppx_core = janePackage {
+ pname = "ppx_core";
+ hash = "15400zxxkqdimmjpdjcs36gcbxbrhylmaczlzwd6x65v1h9aydz3";
+ propagatedBuildInputs = [ ppx_ast ppx_traverse_builtins stdio ];
+ meta.description = "Jane Street's standard library for ppx rewriters";
+ };
+
+ # Jane Street packages, up to ppx_base
+
+ ppx_optcomp = janePackage {
+ pname = "ppx_optcomp";
+ hash = "1wfj6fnh92s81yncq7yyhmax7j6zpjj1sg1f3qa1f9c5kf4kkzrd";
+ propagatedBuildInputs = [ ppx_core ];
+ meta.description = "Optional compilation for OCaml";
+ };
+
+ ppx_driver = janePackage {
+ pname = "ppx_driver";
+ version = "0.9.1";
+ hash = "1amz49x6v4sh1v2my6618cah0zv5i7jmsapbk9ydps6419g5asay";
+ buildInputs = [ ocamlbuild ];
+ propagatedBuildInputs = [ ppx_optcomp ];
+ meta.description = "Feature-full driver for OCaml AST transformers";
+ };
+
+ ppx_metaquot = janePackage {
+ pname = "ppx_metaquot";
+ hash = "15qfd3s4x2pz006nx5316laxd3gqqi472x432qg4rfx4yh3vn31k";
+ propagatedBuildInputs = [ ppx_driver ];
+ meta.description = "Metaquotations for ppx_ast";
+ };
+
+ ppx_type_conv = janePackage {
+ pname = "ppx_type_conv";
+ hash = "0a0gxjvjiql9vg37k0akn8xr5724nv3xb7v37xpidv7ld927ks7p";
+ propagatedBuildInputs = [ ppx_metaquot ppx_deriving ];
+ meta.description = "Support Library for type-driven code generators";
+ };
+
+ ppx_sexp_conv = janePackage {
+ pname = "ppx_sexp_conv";
+ hash = "03cg2sym0wvpd5l7q4w9bclp589z5byygwsmnnq9h1ih56cmd55l";
+ propagatedBuildInputs = [ ppx_type_conv sexplib ];
+ meta.description = "Generation of S-expression conversion functions from type definitions";
+ };
+
+ ppx_compare = janePackage {
+ pname = "ppx_compare";
+ hash = "0wrszpvn1nms5sb5rb29p7z1wmqyd15gfzdj4ax8f843p5ywx3w9";
+ propagatedBuildInputs = [ ppx_type_conv ];
+ meta.description = "Generation of comparison functions from types";
+ };
+
+ ppx_enumerate = janePackage {
+ pname = "ppx_enumerate";
+ hash = "1dfy86j2z12p5n9yrwaakx1ngphs5246vxy279kz6i6j34cwxm46";
+ propagatedBuildInputs = [ ppx_type_conv ];
+ meta.description = "Generate a list containing all values of a finite type";
+ };
+
+ ppx_hash = janePackage {
+ pname = "ppx_hash";
+ hash = "1w1riy2sqd9i611sc5f5z2rqqgjl2gvvkzi5xibpv309nacnl01d";
+ propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+ meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
+ };
+
+ ppx_js_style = janePackage {
+ pname = "ppx_js_style";
+ hash = "09k02b1l2r7svf9l3ls69h8xydsyiang2ziigxnny2i7gy7b0w59";
+ propagatedBuildInputs = [ ppx_metaquot octavius ];
+ meta.description = "Code style checker for Jane Street Packages";
+ };
+
+ ppx_base = janePackage {
+ pname = "ppx_base";
+ hash = "0qikfzbkd2wyxfrvizz6rgi6vg4ykvxkivacj4gr178dbgfl5if3";
+ propagatedBuildInputs = [ ppx_enumerate ppx_hash ppx_js_style ];
+ meta.description = "Base set of ppx rewriters";
+ };
+
+ # Jane Street packages, up to ppx_bin_prot
+
+ fieldslib = janePackage {
+ pname = "fieldslib";
+ hash = "1wxh59888l1bfz9ipnbcas58gwg744icaixzdbsg4v8f7wymc501";
+ propagatedBuildInputs = [ ppx_driver ];
+ meta.description = "OCaml record fields as first class values";
+ };
+
+ variantslib = janePackage {
+ pname = "variantslib";
+ hash = "0kj53n62193j58q9vip8lfhhyf6w9d25wyvxzc163hx5m68yw0fz";
+ propagatedBuildInputs = [ ppx_driver ];
+ meta.description = "OCaml variants as first class values";
+ };
+
+ ppx_traverse = janePackage {
+ pname = "ppx_traverse";
+ hash = "1sdqgwyq0w71i03vhc5jq4jk6rsbgwhvain48fnrllpkb5kj2la2";
+ propagatedBuildInputs = [ ppx_type_conv ];
+ meta.description = "Automatic generation of open recursion classes";
+ };
+
+ ppx_custom_printf = janePackage {
+ pname = "ppx_custom_printf";
+ hash = "0cjy2c2c5g3qxqvwx1yb6p7kbmmpnpb1hll55f7a44x215lg8x19";
+ propagatedBuildInputs = [ ppx_sexp_conv ppx_traverse ];
+ meta.description = "Printf-style format-strings for user-defined string conversion";
+ };
+
+ ppx_fields_conv = janePackage {
+ pname = "ppx_fields_conv";
+ hash = "0qp8zgmk58iskzrkf4g06i471kg6lrh3wqpy9klrb8pp9mg0xr9z";
+ propagatedBuildInputs = [ fieldslib ppx_type_conv ];
+ meta.description = "Generation of accessor and iteration functions for OCaml records";
+ };
+
+ ppx_variants_conv = janePackage {
+ pname = "ppx_variants_conv";
+ hash = "1xayhyglgbdjqvb9123kjbwjcv0a3n3302nb0j7g8gmja8w5y834";
+ propagatedBuildInputs = [ ppx_type_conv variantslib ];
+ meta.description = "Generation of accessor and iteration functions for OCaml variant types";
+ };
+
+ bin_prot = janePackage {
+ pname = "bin_prot";
+ version = "0.9.1";
+ hash = "1bgcmkgz6b5i522996x589zsaiy5b3h37887lwbqvpps8by2ayvk";
+ propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
+ meta.description = "Binary protocol generator";
+ };
+
+ ppx_here = janePackage {
+ pname = "ppx_here";
+ hash = "0pjscw5ydxgy4fcxakgsazpp09ka057w5n2fp2dpkv2k5gil6rzh";
+ propagatedBuildInputs = [ ppx_driver ];
+ meta.description = "Expands [%here] into its location";
+ };
+
+ ppx_bin_prot = janePackage {
+ pname = "ppx_bin_prot";
+ hash = "0qw9zqrc5yngzrzpk9awnlnd68xrb7wz5lq807c80ibxk0xvnqn3";
+ propagatedBuildInputs = [ ppx_here bin_prot ];
+ meta.description = "Generation of bin_prot readers and writers from types";
+ };
+
+ # Jane Street packages, up to ppx_jane
+
+ ppx_assert = janePackage {
+ pname = "ppx_assert";
+ hash = "1s5c75wkc46nlcwmgic5h7f439s26ssrzrcil501c5kpib2hlv6z";
+ propagatedBuildInputs = [ ppx_sexp_conv ppx_here ppx_compare ];
+ meta.description = "Assert-like extension nodes that raise useful errors on failure";
+ };
+
+ ppx_inline_test = janePackage {
+ pname = "ppx_inline_test";
+ version = "0.9.2";
+ hash = "17j36ihiqprbpa2bk02449k93vaidid2sly5djrk848ccjq8n5aa";
+ propagatedBuildInputs = [ ppx_metaquot ];
+ meta.description = "Syntax extension for writing in-line tests in OCaml code";
+ };
+
+ typerep = janePackage {
+ pname = "typerep";
+ hash = "0hlc0xiznli1k6azv2mhm1s4xghhxqqd957np7828bfp7r8n2jy3";
+ propagatedBuildInputs = [ base ];
+ meta.description = "Runtime types for OCaml";
+ };
+
+ ppx_bench = janePackage {
+ pname = "ppx_bench";
+ hash = "1qk4y6c2mpw7bqjppi2nam74vs2sc89wzq162j92wsqxyqsv4p93";
+ propagatedBuildInputs = [ ppx_inline_test ];
+ meta.description = "Syntax extension for writing in-line benchmarks in OCaml code";
+ };
+
+ ppx_expect = janePackage {
+ pname = "ppx_expect";
+ hash = "1bik53k51wcqv088f0h10n3ms9h51yvg6ha3g1s903i2bxr3xs6b";
+ propagatedBuildInputs = [ ppx_inline_test ppx_fields_conv ppx_custom_printf ppx_assert ppx_variants_conv re ];
+ meta.description = "Cram like framework for OCaml";
+ };
+
+ ppx_fail = janePackage {
+ pname = "ppx_fail";
+ hash = "0qz0vlazasjyg7cv3iwpzxlvsah3zmn9dzd029xxqr1bji067s32";
+ propagatedBuildInputs = [ ppx_here ppx_metaquot ];
+ meta.description = "Add location to calls to failwiths";
+ };
+
+ ppx_let = janePackage {
+ pname = "ppx_let";
+ hash = "1b914a5nynwxjvfx42v61yigvjhnd548m4yqjfchf38dmqi1f4nr";
+ propagatedBuildInputs = [ ppx_driver ];
+ meta.description = "Monadic let-bindings";
+ };
+
+ ppx_optional = janePackage {
+ pname = "ppx_optional";
+ hash = "1vknsarxba0zcp5k2jb31wfpvqrv3bpanxbahfl5s2fwspsfdc82";
+ propagatedBuildInputs = [ ppx_metaquot ];
+ meta.description = "Pattern matching on flat options";
+ };
+
+ ppx_pipebang = janePackage {
+ pname = "ppx_pipebang";
+ hash = "1wyfyyjvyi94ds1p90l60wdr85q2v3fq1qdf3gnv9zjfy6sb0g9h";
+ propagatedBuildInputs = [ ppx_metaquot ];
+ meta.description = "A ppx rewriter that inlines reverse application operators |> and |!";
+ };
+
+ ppx_sexp_message = janePackage {
+ pname = "ppx_sexp_message";
+ hash = "0r0skyr1zf2jh48xrxbs45gzywynhlivkq24xwc0qq435fmc2jqv";
+ propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
+ meta.description = "A ppx rewriter for easy construction of s-expressions";
+ };
+
+ ppx_sexp_value = janePackage {
+ pname = "ppx_sexp_value";
+ hash = "0hha5mmx700m8fy9g4znb8278l09chgwlpshny83vsmmzgq2jhah";
+ propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
+ meta.description = "A ppx rewriter that simplifies building s-expressions from OCaml values";
+ };
+
+ ppx_typerep_conv = janePackage {
+ pname = "ppx_typerep_conv";
+ hash = "0bzgfpbqijwxm8x9jq1zb4xi5sbzymk17lw5rylri3hf84p60aq1";
+ propagatedBuildInputs = [ ppx_type_conv typerep ];
+ meta.description = "Generation of runtime types from type declarations";
+ };
+
+ ppx_jane = janePackage {
+ pname = "ppx_jane";
+ hash = "16m5iw0qyp452nqj83kd0g0x3rw40lrz7392hwpd4di1wi6v2qzc";
+ propagatedBuildInputs = [ ppx_base ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_let ppx_optional ppx_pipebang ppx_sexp_message ppx_sexp_value ppx_typerep_conv ];
+ meta.description = "Standard Jane Street ppx rewriters";
+ };
+
+ # Jane Street packages, up to core
+
+ configurator = janePackage {
+ pname = "configurator";
+ version = "0.9.1";
+ hash = "1q0s0ghcrcrxdj6zr9zr27g7sr4qr9l14kizjphwqwwvgbzawdix";
+ propagatedBuildInputs = [ ppx_base ];
+ meta.description = "Helper library for gathering system configuration";
+ };
+
+ jane-street-headers = janePackage {
+ pname = "jane-street-headers";
+ hash = "0cdab6sblsidjbwvyvmspykyhqh44rpsjzi2djbfd5m4vh2h14gy";
+ meta.description = "Jane Street header files";
+ };
+
+ core_kernel = janePackage {
+ pname = "core_kernel";
+ hash = "05iwvggx9m81x7ijgv9gcv5znf5rmsmb76dg909bm9gkr3hbh7wh";
+ propagatedBuildInputs = [ configurator jane-street-headers ppx_jane ];
+ meta.description = "Jane Street's standard library overlay (kernel)";
+ };
+
+ spawn = janePackage {
+ pname = "spawn";
+ hash = "1w53b8ni06ajj62yaqjy0pkbm952l0m5fzr088yk15078qaxsnb5";
+ meta.description = "Spawning sub-processes";
+ };
+
+ core = janePackage {
+ pname = "core";
+ version = "0.9.1";
+ hash = "1643r0namsgj8xwfr9niimcdwyyq4ddiwd02d73ipb4a8710aqi8";
+ propagatedBuildInputs = [ core_kernel spawn ];
+ meta.description = "Jane Street's standard library overlay";
+ };
+
+ # Jane Street packages, up to core_extended
+
+ re2 = janePackage {
+ pname = "re2";
+ hash = "1qmhl3yd6y0lq401rz72b1bsbpglb0wighpxn3x8y1ixq415p4xi";
+ propagatedBuildInputs = [ core_kernel ];
+ meta = {
+ description = "OCaml bindings for RE2";
+ broken = stdenv.isDarwin;
+ };
+ };
+
+ textutils = janePackage {
+ pname = "textutils";
+ hash = "1y6j2qw7rc8d80343lfv1dygnfrhn2qllz57mx28pl5kan743f6d";
+ propagatedBuildInputs = [ core ];
+ meta.description = "Text output utilities";
+ };
+
+ core_extended = janePackage {
+ pname = "core_extended";
+ hash = "05cnzzj0kigz9c9gsmd6mfar82wmkbqm9qzrydb80sy2fz5b30rk";
+ propagatedBuildInputs = [ core re2 textutils ];
+ postPatch = ''
+ patchShebangs src/discover.sh
+ '';
+ meta = {
+ description = "Jane Street Capital's standard library overlay";
+ };
+ };
+
+ # Jane Street async packages
+
+ async_kernel = janePackage {
+ pname = "async_kernel";
+ hash = "1zwxhzy7f9900rcjls2fql9cpfmwrcah3fazzdz4h2i51f41w62x";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Jane Street Capital's asynchronous execution library (core)";
+ };
+
+ async_rpc_kernel = janePackage {
+ pname = "async_rpc_kernel";
+ hash = "1xk3s6s3xkj182p10kig2cqy8md6znif3v661h9cd02n8s57c40b";
+ propagatedBuildInputs = [ core_kernel async_kernel ];
+ meta.description = "Platform-independent core of Async RPC library";
+ };
+
+ async_unix = janePackage {
+ pname = "async_unix";
+ hash = "0yd4z28j5vdj2zxqi0fkgh2ic1s9h740is2dk0raga0zr5a1z03d";
+ propagatedBuildInputs = [ core async_kernel ];
+ meta.description = "Jane Street Capital's asynchronous execution library (unix)";
+ };
+
+ async_extra = janePackage {
+ pname = "async_extra";
+ hash = "0rpy5lc5dh5mir7flq1jrppd8imby8wyw191yg4nmklg28xp5sx0";
+ propagatedBuildInputs = [ async_rpc_kernel async_unix ];
+ meta.description = "Jane Street's asynchronous execution library (extra)";
+ };
+
+ async = janePackage {
+ pname = "async";
+ hash = "10ykzym19srgdiikj0s74dndx5nk15hjq1r2hc61iz48f6caxkb1";
+ propagatedBuildInputs = [ async_extra ];
+ meta.description = "Jane Street Capital's asynchronous execution library";
+ };
+
+ async_find = janePackage {
+ pname = "async_find";
+ hash = "11dmhdzgf5kn4m0cm6zr28wpwhi2kr4lak9nmgxbrxsq28bcncxq";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Directory traversal with Async";
+ };
+
+ async_interactive = janePackage {
+ pname = "async_interactive";
+ hash = "1mmqqp6bi2wg7bmgf0sw34jn3iyl5kbm200dax8yqq6rfprcs49j";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Utilities for building simple command-line based user interfaces";
+ };
+
+ async_parallel = janePackage {
+ pname = "async_parallel";
+ hash = "0mdprhr1pv4g65g10gr3gaifrzknsdgarwfdbjlvhzfs86075kyn";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Distributed computing library";
+ };
+
+ async_shell = janePackage {
+ pname = "async_shell";
+ hash = "02clpz3xv3i5avzifwalylb9gfxzpgnr8bnlfsjixxfk2m7kvsj2";
+ propagatedBuildInputs = [ core_extended async ];
+ meta = {
+ description = "Shell helpers for Async";
+ };
+ };
+
+ async_ssl = janePackage {
+ pname = "async_ssl";
+ hash = "01w3bg38q61lc3hfh8jsr0sy1ylyv0m6g6h9yvsk8ngj6qk70nss";
+ propagatedBuildInputs = [ async ctypes openssl ];
+ meta.description = "Async wrappers for SSL";
+ };
+
+ # Jane Street packages, up to expect_test_helpers
+
+ sexp_pretty = janePackage {
+ pname = "sexp_pretty";
+ hash = "1bx8va468j5b813m0vsh1jzgb6h2qnnjfmjlf2hb82sarv8lllfx";
+ propagatedBuildInputs = [ ppx_base re ];
+ meta.description = "S-expression pretty-printer";
+ };
+
+ expect_test_helpers_kernel = janePackage {
+ pname = "expect_test_helpers_kernel";
+ hash = "1ycqir8sqgq5nialnrfg29nqn0cqg6jjpgv24drdycdhqf5r2zg6";
+ propagatedBuildInputs = [ core_kernel sexp_pretty ];
+ meta.description = "Helpers for writing expectation tests";
+ };
+
+ expect_test_helpers = janePackage {
+ pname = "expect_test_helpers";
+ hash = "0rsh6rwbqfcrqisk8jp7srlnicsadbzrs02ri6zyx0p3lmznw5r2";
+ propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+ meta.description = "Async helpers for writing expectation tests";
+ };
+
+ # Miscellaneous Jane Street packages
+
+ bignum = janePackage {
+ pname = "bignum";
+ hash = "0g80mzsi7vc1kq4mzha8y9nl95h6cd041vix3wjrqgkdvb1qd4f3";
+ propagatedBuildInputs = [ core_kernel zarith ];
+ meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
+ };
+
+ cinaps = janePackage {
+ pname = "cinaps";
+ hash = "02fpjiwrygkpx2q4jfldhbqh0mqxmf955wizr8k4vmsq4wsis0p5";
+ propagatedBuildInputs = [ re ];
+ meta.description = "Trivial Metaprogramming tool using the OCaml toplevel";
+ };
+
+ command_rpc = janePackage {
+ pname = "command_rpc";
+ hash = "0w58z9jkz5qzbvf33wrzhfshzdvnrphj6dq8dmi52ykhfvxm7824";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Utilities for Versioned RPC communication with a child process over stdin and stdout";
+ };
+
+ core_bench = janePackage {
+ pname = "core_bench";
+ hash = "1m2q7217nmcsck29i59djkm0h6z3aj0i01niijzr5f6ilbnmyd3h";
+ propagatedBuildInputs = [ core_extended ];
+ meta = {
+ description = "Micro-benchmarking library for OCaml";
+ };
+ };
+
+ core_profiler = janePackage {
+ pname = "core_profiler";
+ hash = "1ir2v3wdfbf5xzqcma16asc73mkx2q6dzq5y1bx6q1rpa7iznx44";
+ propagatedBuildInputs = [ core_extended ];
+ meta = {
+ description = "Profiling library";
+ };
+ };
+
+ csvfields = janePackage {
+ pname = "csvfields";
+ hash = "0lbvs1kwl22ryxhw6s089f6683hj2920bn518mvr22rnv7qijy0v";
+ propagatedBuildInputs = [ core ];
+ meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
+ };
+
+ ecaml = janePackage {
+ pname = "ecaml";
+ hash = "1a2534bzbwgpm71aj3sm71sm0lkcjdfjj1mk91p1pg9kxn8c5x4i";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Writing Emacs plugin in OCaml";
+ };
+
+ email_message = janePackage {
+ pname = "email_message";
+ hash = "0cpaf6wn5g883bxdz029bksvrfzih99m7hzbb30fhqglmpmmkniz";
+ propagatedBuildInputs = [ async core_extended cryptokit magic-mime ounit ];
+ meta = {
+ description = "E-mail message parser";
+ };
+ };
+
+ incremental_kernel = janePackage {
+ pname = "incremental_kernel";
+ hash = "0zq48wbgqcflh84n10iygi8aa3f0zzmgc7r0jwvsyg7i8zccgvf5";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Library for incremental computations depending only on core_kernel";
+ };
+
+ incremental = janePackage {
+ pname = "incremental";
+ hash = "05sx8ia46v4dlvzcn7xgjcwxvbd0wmvv9r2bpvniapjnwr1nvcfh";
+ propagatedBuildInputs = [ core incremental_kernel ];
+ meta.description = "Library for incremental computations";
+ };
+
+ incr_map = janePackage {
+ pname = "incr_map";
+ hash = "0358qg9irxbbhn18laqww3mn43mdwvlbr0h2mvg3vdbb2c5jp4fv";
+ propagatedBuildInputs = [ incremental_kernel ];
+ meta.description = "Helpers for incremental operations on map like data structures";
+ };
+
+ ocaml_plugin = janePackage {
+ pname = "ocaml_plugin";
+ hash = "0q33swnlx9p1gcn1aj95501kapb7cnbzbsavid69csczwmzcxr14";
+ buildInputs = [ ocamlbuild ];
+ propagatedBuildInputs = [ async ];
+ meta.description = "Automatically build and dynlink ocaml source files";
+ };
+
+ parsexp = janePackage {
+ pname = "parsexp";
+ hash = "0brrifvnfqbfk873v6y5b2jixs2d73hpispj9r440kca5cfsv23b";
+ propagatedBuildInputs = [ ppx_compare ppx_fields_conv ppx_js_style ppx_sexp_value ];
+ meta.description = "S-expression parsing library";
+ };
+
+ parsexp_io = janePackage {
+ pname = "parsexp_io";
+ hash = "0gcmh4dg48xgszladq92yhk1hf492zf0smz462xrwknzlfdkz6a5";
+ propagatedBuildInputs = [ parsexp ];
+ meta.description = "S-expression parsing library (IO functions)";
+ };
+
+ patience_diff = janePackage {
+ pname = "patience_diff";
+ hash = "0vpx9xj1ich5qmj3m26vlmix3nsdj7pd1xzhqwbc7ad2kqwy3grg";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Tool and library implementing patience diff";
+ };
+
+ posixat = janePackage {
+ pname = "posixat";
+ hash = "0ak93dyzi6sc6gb0j07fj85b24d8bv6g2hm7jj5xwb39kjwh51jl";
+ propagatedBuildInputs = [ ppx_sexp_conv ];
+ meta.description = "Binding to the posix *at functions";
+ meta.broken = lib.versionAtLeast ocaml.version "4.05";
+ };
+
+ rpc_parallel = janePackage {
+ pname = "rpc_parallel";
+ hash = "0s72msl2p27bz0knjlpgy5qwp0w4z76cq801ps0sab35f8jjfs38";
+ propagatedBuildInputs = [ async ];
+ meta.description = "Type-safe library for building parallel applications";
+ };
+
+ shexp = janePackage {
+ pname = "shexp";
+ hash = "1fkz4l9z4i0fz2kccd5blm2j9x2x4z6y1cn29wjmc3spqfxbq37y";
+ propagatedBuildInputs = [ posixat spawn ];
+ meta.description = "Process library and s-expression based shell";
+ };
+
+ topological_sort = janePackage {
+ pname = "topological_sort";
+ hash = "1d64fyq0clsgham9p1f5rk01z8pxalglp92xmqw2iznyw0vxhvsy";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Topological sort algorithm";
+ };
+
+ typerep_extended = janePackage {
+ pname = "typerep_extended";
+ hash = "15gq8mrvlipd616rffr3f0wqw5d0ijnnizix610g2d5viirh0j9p";
+ propagatedBuildInputs = [ core_kernel ];
+ meta.description = "Runtime types for OCaml (Extended)";
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix
new file mode 100644
index 000000000000..3ed7106e7b65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix
@@ -0,0 +1,16 @@
+{stdenv, buildOcamlJane,
+ ppx_compare, ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools, ppx_type_conv, sexplib}:
+
+buildOcamlJane {
+ name = "ppx_assert";
+ hash = "0n7fa1j79ykbkhp8xz0ksg5096asri5d0msshsaqhw5fz18chvz4";
+ propagatedBuildInputs =
+ [ ppx_compare ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools
+ ppx_type_conv sexplib ];
+
+ meta = with stdenv.lib; {
+ description = "Assert-like extension nodes that raise useful errors on failure";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix
new file mode 100644
index 000000000000..9e5df431e04c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_inline_test, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_bench";
+ minimumSupportedOcamlVersion = "4.02";
+ hash = "1l5jlwy1d1fqz70wa2fkf7izngp6nx3g4s9bmnd6ca4dx1x5bksk";
+
+ hasSharedObjects = true;
+
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_inline_test ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "Syntax extension for writing in-line benchmarks in ocaml code";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix
new file mode 100644
index 000000000000..d7f333d4cf4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, bin_prot}:
+
+buildOcamlJane {
+ name = "ppx_bin_prot";
+ hash = "0kwmrrrybdkmphqczsr3lg3imsxcjb8iy41syvn44s3kcjfyyzbz";
+ propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv bin_prot ];
+
+ meta = with stdenv.lib; {
+ description = "Generation of bin_prot readers and writers from types";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix
new file mode 100644
index 000000000000..0bfdd7bd540c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_tools, ppx_type_conv}:
+
+buildOcamlJane {
+ name = "ppx_compare";
+ hash = "05cnwxfxm8201lpfmcqkcqfy6plh5c2151jbj4qsnxhlvvjli459";
+ propagatedBuildInputs =
+ [ppx_core ppx_driver ppx_tools ppx_type_conv ];
+
+ meta = with stdenv.lib; {
+ description = "Generation of fast comparison functions from type expressions and definitions";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-core.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-core.nix
new file mode 100644
index 000000000000..c5789ee9cfb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-core.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_core";
+ hash = "0df7vyai488lfkyh8szw2hvn22jsyrkfvq1b91j1s0g0y27nnfax";
+ propagatedBuildInputs =
+ [ ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "PPX standard library";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix
new file mode 100644
index 000000000000..c652afa5fbfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_sexp_conv, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_custom_printf";
+ hash = "06y85m6ky376byja4w7gdwd339di5ag0xrf0czkylzjsnylhdr85";
+
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_sexp_conv ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "Extensions to printf-style format-strings for user-defined string conversion";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix
new file mode 100644
index 000000000000..b4fb9ec7602f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_optcomp}:
+
+buildOcamlJane {
+ name = "ppx_driver";
+ hash = "19cpfdn1n36vl5l9d6h7c61ffn0wmiipprn5by0354i5aywj8gpn";
+ propagatedBuildInputs =
+ [ ppx_core ppx_optcomp ];
+
+ meta = with stdenv.lib; {
+ description = "A driver is an executable created from a set of OCaml AST transformers linked together with a command line frontend";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix
new file mode 100644
index 000000000000..2fdfede0f23d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv}:
+
+buildOcamlJane {
+ name = "ppx_enumerate";
+ hash = "0m11921q2pjzkwckf21fynd2qfy83n9jjsgks23yagdai8a7ym16";
+ propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv ];
+
+ meta = with stdenv.lib; {
+ description = "Generate a list containing all values of a finite type";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix
new file mode 100644
index 000000000000..f78f93ee1202
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix
@@ -0,0 +1,19 @@
+{stdenv, buildOcamlJane,
+ ppx_assert, ppx_compare, ppx_core, ppx_custom_printf, ppx_driver,
+ ppx_fields_conv, ppx_here, ppx_inline_test, ppx_sexp_conv, ppx_tools,
+ ppx_variants_conv, re, sexplib, variantslib, fieldslib}:
+
+buildOcamlJane {
+ name = "ppx_expect";
+ hash = "0cwagb4cj3x1vsr19kyfa9pxlvaz9a5v863cahi5glinsh4mzgdx";
+ propagatedBuildInputs =
+ [ ppx_assert ppx_compare ppx_core ppx_custom_printf ppx_driver
+ ppx_fields_conv ppx_here ppx_inline_test ppx_sexp_conv ppx_tools
+ ppx_variants_conv re sexplib variantslib fieldslib ];
+
+ meta = with stdenv.lib; {
+ description = "Cram-like framework for OCaml";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix
new file mode 100644
index 000000000000..4f55a6c4eacb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_here, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_fail";
+ hash = "1ms5axpc0zg469zj4799nz3wwxi6rmmyvqj52dy03crmpj71s18l";
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "Syntax extension that makes failwith include a position";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix
new file mode 100644
index 000000000000..551738573b36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv}:
+
+buildOcamlJane {
+ name = "ppx_fields_conv";
+ hash = "11w9wfjgkv7yxv3rwlwi6m193zan6rhmi45q7n3ddi2s8ls3gra7";
+ propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv ];
+
+ meta = with stdenv.lib; {
+ description = "Generation of accessor and iteration functions for ocaml records";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-here.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-here.nix
new file mode 100644
index 000000000000..ea3ac5e8e5ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-here.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver}:
+
+buildOcamlJane {
+ name = "ppx_here";
+ hash = "1mzdgn8k171zkwmbizf1a48l525ny0w3363c7gknpnifcinxniiw";
+ propagatedBuildInputs = [ ppx_core ppx_driver ];
+
+ meta = with stdenv.lib; {
+ description = "A ppx rewriter that defines an extension node whose value is its source position";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix
new file mode 100644
index 000000000000..d0e4c84158c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_inline_test";
+ hash = "0ygapa54i0wwcj3jcqwiimrc6z0b7aafgjhbk37h6vvclnm5n7f6";
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "Syntax extension for writing in-line tests in ocaml code";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix
new file mode 100644
index 000000000000..1086059b19f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix
@@ -0,0 +1,22 @@
+{stdenv, buildOcamlJane,
+ ppx_assert,
+ ppx_bench, ppx_bin_prot, ppx_compare, ppx_custom_printf, ppx_driver,
+ ppx_enumerate, ppx_expect, ppx_fail, ppx_fields_conv, ppx_here,
+ ppx_inline_test, ppx_let, ppx_pipebang, ppx_sexp_conv, ppx_sexp_message,
+ ppx_sexp_value, ppx_typerep_conv, ppx_variants_conv}:
+
+buildOcamlJane {
+ name = "ppx_jane";
+ hash = "1la0rp8fhzfglwb15gqh1pl1ld8ls4cnidaw9mjc5q1hb0yj1qd9";
+ propagatedBuildInputs =
+ [ ppx_assert ppx_bench ppx_bin_prot ppx_compare ppx_custom_printf
+ ppx_driver ppx_enumerate ppx_expect ppx_fail ppx_fields_conv
+ ppx_here ppx_inline_test ppx_let ppx_pipebang ppx_sexp_conv
+ ppx_sexp_message ppx_sexp_value ppx_typerep_conv ppx_variants_conv ];
+
+ meta = with stdenv.lib; {
+ description = "A ppx_driver including all standard ppx rewriters";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-let.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-let.nix
new file mode 100644
index 000000000000..8c8b87d7112e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-let.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver}:
+
+buildOcamlJane {
+ name = "ppx_let";
+ hash = "0whnfq4rgkq4apfqnvc100wlk25pmqdyvy6s21dsn3fcm9hff467";
+ propagatedBuildInputs = [ ppx_core ppx_driver ];
+
+ meta = with stdenv.lib; {
+ description = "A ppx rewriter for monadic and applicative let bindings and match statements";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix
new file mode 100644
index 000000000000..61fa66b77cc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_optcomp";
+ hash = "09m2x2a5ics4bz1j29n5slhh1rlyhcwdfmf44v1jfxcby3f0riwd";
+ propagatedBuildInputs =
+ [ ppx_core ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "ppx_optcomp stands for Optional Compilation. It is a tool used to handle optional compilations of pieces of code depending of the word size, the version of the compiler, etc.";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix
new file mode 100644
index 000000000000..209638f97b74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_pipebang";
+ hash = "0k25bhj9ziiw89xvs4svz7cgazbbmprba9wbic2llffg55fp7acc";
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "A ppx rewriter that inlines reverse application operators |> and |!";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix
new file mode 100644
index 000000000000..00361ee81ebe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, sexplib}:
+
+buildOcamlJane {
+ name = "ppx_sexp_conv";
+ hash = "1kgbmlc11w5jhbhmy5n0f734l44zwyry48342dm5qydi9sfzcgq2";
+ propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv sexplib];
+
+ meta = with stdenv.lib; {
+ description = "PPX syntax extension that generates code for converting OCaml types to and from s-expressions, as defined in the sexplib library";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix
new file mode 100644
index 000000000000..2a8bf44bfab2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_sexp_message";
+ hash = "0inbff25qii868p141jb1y8n3vjfyz66jpnsl9nma6nkkyjkp05j";
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "Easy construction of S-Expressions";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix
new file mode 100644
index 000000000000..64fbe4bd9bb9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_sexp_value";
+ hash = "04602ppqfwx33ghjywam00hlqqzsz4d99r60k9q0v1mynk9pjhj0";
+ propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "A ppx rewriter that simplifies building S-Expression from OCaml Values";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix
new file mode 100644
index 000000000000..bf36dfab5cb0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_deriving, ppx_driver, ppx_tools}:
+
+buildOcamlJane {
+ name = "ppx_type_conv";
+ hash = "0gv0mqwn97dwrfm6rj442565y8dz7kiq8s8vadnhywrl7j4znqyq";
+ propagatedBuildInputs =
+ [ ppx_core ppx_deriving ppx_driver ppx_tools ];
+
+ meta = with stdenv.lib; {
+ description = "The type_conv library factors out functionality needed by different preprocessors that generate code from type specifications";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix
new file mode 100644
index 000000000000..472ec19b5588
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, typerep}:
+
+buildOcamlJane {
+ name = "ppx_typerep_conv";
+ hash = "0dldlx73r07j6w0i7h4hxly0v678naa79na5rafsk2974gs5ih9g";
+ propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv typerep ];
+
+ meta = with stdenv.lib; {
+ description = "Automatic generation of runtime types from type definitions";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix
new file mode 100644
index 000000000000..1d01b0bc321d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, sexplib, variantslib}:
+
+buildOcamlJane {
+ name = "ppx_variants_conv";
+ hash = "0kgal8b9yh7wrd75hllb9fyl6zbksfnr9k7pykpzdm3js98dirhn";
+ propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv sexplib variantslib ];
+
+ meta = with stdenv.lib; {
+ description = "Generation of accessor and iteration functions for ocaml variant types";
+ maintainers = [ maintainers.maurer ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/sexplib.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/sexplib.nix
new file mode 100644
index 000000000000..1bb9d489b148
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/sexplib.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane {
+ minimumSupportedOcamlVersion = "4.02";
+ name = "sexplib";
+ version = "113.33.03";
+
+ hash = "1klar4qw4s7bj47ig7kxz2m4j1q3c60pfppis4vxrxv15r0kfh22";
+
+ propagatedBuildInputs = [ type_conv ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://ocaml.janestreet.com/";
+ description = "Library for serializing OCaml values to and from S-expressions";
+ license = licenses.asl20;
+ maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/typerep.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/typerep.nix
new file mode 100644
index 000000000000..9ed037e52110
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/typerep.nix
@@ -0,0 +1,20 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane {
+ name = "typerep";
+ version = "113.33.03";
+
+ minimumSupportedOcamlVersion = "4.00";
+
+ hash = "1ss34nq20vfgx8hwi5sswpmn3my9lvrpdy5dkng746xchwi33ar7";
+
+ propagatedBuildInputs = [ type_conv ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/janestreet/typerep";
+ description = "Runtime types for OCaml (beta version)";
+ license = licenses.asl20;
+ maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/variantslib.nix b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/variantslib.nix
new file mode 100644
index 000000000000..02e63291add2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/ocaml-modules/janestreet/variantslib.nix
@@ -0,0 +1,19 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane {
+ name = "variantslib";
+ version = "113.33.03";
+
+ minimumSupportedOcamlVersion = "4.00";
+
+ hash = "1hv0f75msrryxsl6wfnbmhc0n8kf7qxs5f82ry3b8ldb44s3wigp";
+
+ propagatedBuildInputs = [ type_conv ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/janestreet/variantslib";
+ description = "OCaml variants as first class values";
+ license = licenses.asl20;
+ maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+ };
+}