evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / development / ocaml-modules / janestreet / 0.15.nix
blob6a0e4fb58fd39728020e2e2a88956c6be8bbc5ce
1 { self
2 , bash
3 , fetchpatch
4 , fzf
5 , lib
6 , ocaml
7 , openssl
8 , zstd
9 }:
11 with self;
15   abstract_algebra = janePackage {
16     pname = "abstract_algebra";
17     minimalOCamlVersion = "4.08";
18     hash = "12imf6ibm7qb8r1fpqnrl20x2z14zl3ri1vzg0z8qby9l8bv2fbd";
19     meta.description = "A small library describing abstract algebra concepts";
20     propagatedBuildInputs = [ base ppx_jane ];
21   };
23   accessor = janePackage {
24     pname = "accessor";
25     minimalOCamlVersion = "4.09";
26     hash = "17rzf0jpc9s3yrxcnn630jhgsw5mrnrhwbfh62hqxqanascc5rxh";
27     meta.description = "A library that makes it nicer to work with nested functional data structures";
28     propagatedBuildInputs = [ higher_kinded ];
29   };
31   accessor_async = janePackage {
32     pname = "accessor_async";
33     minimalOCamlVersion = "4.09";
34     hash = "17r6af55ms0i496jsfx0xpdm336c2vhyf49b3s8s1gpz521wrgmc";
35     meta.description = "Accessors for Async types, for use with the Accessor library";
36     propagatedBuildInputs = [ accessor_core async_kernel ];
37   };
39   accessor_base = janePackage {
40     pname = "accessor_base";
41     minimalOCamlVersion = "4.09";
42     hash = "1qvq005vxf6n1c7swzb4bzcqdh471bfb9gcmdj4m57xg85xznc1n";
43     meta.description = "Accessors for Base types, for use with the Accessor library";
44     propagatedBuildInputs = [ ppx_accessor ];
45   };
47   accessor_core = janePackage {
48     minimalOCamlVersion = "4.09";
49     pname = "accessor_core";
50     hash = "0zrs5zbyrhfbah73g22l19bw1mmljhyb3l2mrwcxgbjq9pqp0k9v";
51     meta.description = "Accessors for Core types, for use with the Accessor library";
52     propagatedBuildInputs = [ accessor_base core_kernel ];
53   };
55   async = janePackage {
56     pname = "async";
57     hash = "0pykmnsil754jsnr8gss91ykyjvivngx4ii0ih3nsg1x2jl9xmy2";
58     meta.description = "Monadic concurrency library";
59     propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ];
60     doCheck = false; # we don't have netkit_sockets
61   };
63   async_extra = janePackage {
64     pname = "async_extra";
65     hash = "0pxp0b4shz9krsj8xfzajv8a1mijgf0xdgxrn2abdqrz3rvj6pig";
66     meta.description = "Monadic concurrency library";
67     propagatedBuildInputs = [ async_kernel ];
68   };
70   async_find = janePackage {
71     pname = "async_find";
72     hash = "119988nkcnw6l6wch4llqkvsrawv2gkbn5q4hngpdwvnw0g0aapv";
73     meta.description = "Directory traversal with Async";
74     propagatedBuildInputs = [ async ];
75   };
77   async_inotify = janePackage {
78     pname = "async_inotify";
79     hash = "1nxz6bijp7liy18ljrxg92v2m8v8fqcs1pmzg9kbcf0d4vij8j2p";
80     meta.description = "Async wrapper for inotify";
81     propagatedBuildInputs = [ async_find inotify ];
82   };
84   async_interactive = janePackage {
85     pname = "async_interactive";
86     hash = "00hr2lhs8p3hwnyllmns59rwlpimc5b7r6v4zn6cmpb1riblaxqp";
87     meta.description = "Utilities for building simple command-line based user interfaces";
88     propagatedBuildInputs = [ async ];
89   };
91   async_js = janePackage {
92     pname = "async_js";
93     hash = "184j077bz686k5lrqswircnrdqldb316ngpzq7xri1pcsl39sy3q";
94     meta.description = "A small library that provide Async support for JavaScript platforms";
95     buildInputs = [ js_of_ocaml-ppx ];
96     propagatedBuildInputs = [ async_rpc_kernel js_of_ocaml uri-sexp ];
97   };
99   async_kernel = janePackage {
100     pname = "async_kernel";
101     hash = "01if6c8l2h64v7sk56xr8acnmj6g9whxcjrzzzvczspq88hq2bfh";
102     meta.description = "Monadic concurrency library";
103     propagatedBuildInputs = [ core_kernel ];
104   };
106   async_rpc_kernel = janePackage {
107     pname = "async_rpc_kernel";
108     hash = "1b5rp5yam03ir4f1sixpzjg1zdqmkb7lvnaa82kac4fzk80gfrfr";
109     meta.description = "Platform-independent core of Async RPC library";
110     propagatedBuildInputs = [ async_kernel protocol_version_header ];
111   };
113   async_rpc_websocket = janePackage {
114     pname = "async_rpc_websocket";
115     hash = "1n93jhkz5r76xcc40c4i4sxcyfz1dbppz8sjfxpwcwjyi6lyhp1p";
116     meta.description = "Library to serve and dispatch Async RPCs over websockets";
117     propagatedBuildInputs = [ async_rpc_kernel async_websocket cohttp_async_websocket ];
118   };
120   async_sendfile = janePackage {
121     pname = "async_sendfile";
122     hash = "0lnagdxfnac4z29narphf2ab5a23ys883zmc45r96rssfx82i3fs";
123     meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
124     propagatedBuildInputs = [ async_unix ];
125   };
127   async_shell = janePackage {
128     pname = "async_shell";
129     hash = "07iwlyrc4smk6hsnz89cz2ihp670mllq0y9wbdafvagm1y1p62vx";
130     meta.description = "Shell helpers for Async";
131     propagatedBuildInputs = [ async shell ];
132   };
134   async_smtp = janePackage {
135     pname = "async_smtp";
136     hash = "1m00j7wcb0blipnc1m6by70gd96a1k621b4dgvgffp8as04a461r";
137     minimalOCamlVersion = "4.12";
138     meta.description = "SMTP client and server";
139     propagatedBuildInputs = [ async_extra async_inotify async_sendfile async_shell async_ssl email_message resource_cache re2_stable sexp_macro ];
140   };
142   async_ssl = janePackage {
143     pname = "async_ssl";
144     hash = "1b7f7p3xj4jr2n2dxy2lp7a9k7944w6x2nrg6524clvcsd1ax4hn";
145     meta.description = "Async wrappers for SSL";
146     buildInputs = [ dune-configurator ];
147     propagatedBuildInputs = [ async ctypes ctypes-foreign openssl ];
148     # in ctypes.foreign 0.18.0 threaded and unthreaded have been merged
149     postPatch = ''
150       substituteInPlace bindings/dune \
151         --replace "ctypes.foreign.threaded" "ctypes.foreign"
152     '';
153   };
155   async_unix = janePackage {
156     pname = "async_unix";
157     hash = "0z4fgpn93iw0abd7l9kac28qgzgc5qr2x0s1n2zh49lsdn02n6ys";
158     meta.description = "Monadic concurrency library";
159     propagatedBuildInputs = [ async_kernel core_unix ];
160   };
162   async_websocket = janePackage {
163     pname = "async_websocket";
164     hash = "16ixqfnx9jp77bvx11dlzsq0pzfpyiif60hl2q06zncyswky9xgb";
165     meta.description = "A library that implements the websocket protocol on top of Async";
166     propagatedBuildInputs = [ async cryptokit ];
167   };
169   base = janePackage {
170     pname = "base";
171     version = "0.15.1";
172     hash = "sha256-CDKQVF+hAvJTo5QmRvyOfQNrdRgz6m+64q9UzNHlJEA=";
173     minimalOCamlVersion = "4.10";
174     meta.description = "Full standard library replacement for OCaml";
175     buildInputs = [ dune-configurator ];
176     propagatedBuildInputs = [ sexplib0 ];
177     checkInputs = [ alcotest ];
178   };
180   base_bigstring = janePackage {
181     pname = "base_bigstring";
182     hash = "1hv3hw2fwqmkrxms1g6rw3c18mmla1z5bva3anx45mnff903iv4q";
183     minimalOCamlVersion = "4.08";
184     meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
185     propagatedBuildInputs = [ int_repr ppx_jane ];
186   };
188   base_quickcheck = janePackage {
189     pname = "base_quickcheck";
190     hash = "0q73kfr67cz5wp4qn4rq3lpa922hqmvwdiinnans0js65fvlgqsi";
191     minimalOCamlVersion = "4.04.2";
192     meta.description = "Randomized testing framework, designed for compatibility with Base";
193     propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let ppx_sexp_value splittable_random ];
194   };
196   bignum = janePackage {
197     pname = "bignum";
198     hash = "12q3xcv78b4s9srnc17jbyn53d5drmwmyvgp62p7nk3fs4f7cr4f";
199     propagatedBuildInputs = [ core_kernel zarith zarith_stubs_js ];
200     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
201   };
203   bin_prot = janePackage {
204     pname = "bin_prot";
205     hash = "1qfqglscc25wwnjx7byqmjcnjww1msnr8940gyg8h93wdq43fjnh";
206     minimalOCamlVersion = "4.04.2";
207     meta.description = "A binary protocol generator";
208     propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_optcomp ppx_variants_conv ];
209   };
211   bonsai = janePackage {
212     pname = "bonsai";
213     hash = "150zx2g1dmhyrxwqq8j7f2m3hjpmk5bk182ihx2gdbarhw1ainpm";
214     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
215     buildInputs = [ ppx_pattern_bind ];
216     nativeBuildInputs = [ js_of_ocaml-compiler ocaml-embed-file ];
217     propagatedBuildInputs = [
218       async
219       async_extra
220       async_rpc_websocket
221       cohttp-async
222       core_bench
223       fuzzy_match
224       incr_dom
225       js_of_ocaml-ppx
226       patdiff
227       ppx_css
228       ppx_typed_fields
229       profunctor
230       textutils
231     ];
232     patches = [ ./bonsai_jsoo_4_0.patch ];
233   };
235   cinaps = janePackage {
236     pname = "cinaps";
237     version = "0.15.1";
238     hash = "0g856cxmxg4vicwslhqldplkpwi158s2d62vwzv26xg5m6wjn9rg";
239     minimalOCamlVersion = "4.04";
240     meta.description = "Trivial metaprogramming tool";
241     propagatedBuildInputs = [ re ];
242     doCheck = false; # fails because ppx_base doesn't include ppx_js_style
243   };
245   cohttp_async_websocket = janePackage {
246     pname = "cohttp_async_websocket";
247     hash = "0d0smavnxpnwrmhlcf3b5a3cm3n9kz1y8fh6l28xv6zrn4sc7ik8";
248     meta.description = "Websocket library for use with cohttp and async";
249     propagatedBuildInputs = [ async_ssl async_websocket cohttp-async ppx_jane uri-sexp ];
250   };
252   cohttp_static_handler = janePackage {
253     pname = "cohttp_static_handler";
254     version = "0.15.0";
255     hash = "sha256-ENaH8ChvjeMc9WeNIhkeNBB7YK9vB4lw95o6FFZI1ys=";
256     meta.description = "A library for easily creating a cohttp handler for static files";
257     propagatedBuildInputs = [ cohttp-async ];
258   };
260   core = janePackage {
261     pname = "core";
262     version = "0.15.1";
263     hash = "sha256-SHjnNFl+JAjdgVoRgmnz0wqrrc3zoh0ZyG2UhUsUbJ8=";
264     meta.description = "Industrial strength alternative to OCaml's standard library";
265     buildInputs = [ jst-config ];
266     propagatedBuildInputs = [ base base_bigstring base_quickcheck ppx_jane time_now ];
267     doCheck = false; # circular dependency with core_kernel
268     meta.broken = lib.versionAtLeast ocaml.version "5.1";
269   };
271   core_bench = janePackage {
272     pname = "core_bench";
273     hash = "0v6lm9vz6y1qd7h8pg9l5jsy8qr74vlk1nd4qzchld4jhwq7mbdi";
274     meta.description = "Benchmarking library";
275     propagatedBuildInputs = [ textutils ];
276   };
278   core_extended = janePackage {
279     pname = "core_extended";
280     hash = "0sx79hc1y1daczib2p4nbyw4aqnznmdd83knrhs5q153j7lnlalx";
281     meta.description = "Extra components that are not as closely vetted or as stable as Core";
282     propagatedBuildInputs = [ core_unix record_builder ];
283   };
285   core_kernel = janePackage {
286     pname = "core_kernel";
287     hash = "05mb4vbf293iq1xx4acyrmi9cgcw6capwrsa54ils62alby6w6yq";
288     meta.description = "System-independent part of Core";
289     buildInputs = [ jst-config ];
290     propagatedBuildInputs = [ base_bigstring core int_repr sexplib ];
291     doCheck = false; # we don't have quickcheck_deprecated
292   };
294   core_unix = janePackage {
295     pname = "core_unix";
296     version = "0.15.2";
297     hash = "sha256-9f2PiLo+4Bjnfvh3scvIiPHj0wPZozmMMiCTe7vC1EA=";
298     meta.description = "Unix-specific portions of Core";
299     buildInputs = [ jst-config ];
300     propagatedBuildInputs = [ core_kernel expect_test_helpers_core ocaml_intrinsics ppx_jane timezone spawn ];
301     postPatch = ''
302       patchShebangs unix_pseudo_terminal/src/discover.sh
303     '';
304   };
306   csvfields = janePackage {
307     pname = "csvfields";
308     version = "0.15.1";
309     hash = "sha256-bBupsarwjte2NCncNDFSkrrmMR3EYPn+D7xI9zQOhFA=";
310     propagatedBuildInputs = [ core num ];
311     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
312   };
314   delimited_parsing = janePackage {
315     pname = "delimited_parsing";
316     hash = "0d050v58zzi8c4qiwxbfcyrdw6zvncnnl3qj79qi0yq4xkg7820r";
317     propagatedBuildInputs = [ async core_extended ];
318     meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
319   };
321   ecaml = janePackage {
322     pname = "ecaml";
323     hash = "08g2bl06vkn3bkqzkmvk2646aqb6jj4a7n3wgzpcx1c2gl3iw5i6";
324     meta.description = "Library for writing Emacs plugin in OCaml";
325     propagatedBuildInputs = [ async expect_test_helpers_core ];
326   };
328   email_message = janePackage {
329     pname = "email_message";
330     hash = "00h66l2g5rjaay0hbyqy4v9i866g779miriwv20h9k4mliqdq7in";
331     meta.description = "E-mail message parser";
332     propagatedBuildInputs = [ angstrom async base64 cryptokit magic-mime re2 ];
333   };
335   expect_test_helpers_async = janePackage {
336     pname = "expect_test_helpers_async";
337     hash = "14v4966p5dmqgjb9sgrvnsixv0w0bagicn8v44g9mf9d88z8pfym";
338     meta.description = "Async helpers for writing expectation tests";
339     propagatedBuildInputs = [ async expect_test_helpers_core ];
340   };
342   expect_test_helpers_core = janePackage {
343     pname = "expect_test_helpers_core";
344     hash = "0bxs3g0zzym8agfcbpg5lmrh6hcb86z861bq40xhhfwqf4pzdbfa";
345     meta.description = "Helpers for writing expectation tests";
346     propagatedBuildInputs = [ core_kernel sexp_pretty ];
347   };
349   fieldslib = janePackage {
350     pname = "fieldslib";
351     hash = "0xwf9mdxlyr3f0vv5y82cyw2bsckwl8rwf6jm6bai1gqpgxjq756";
352     minimalOCamlVersion = "4.04.2";
353     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";
354     propagatedBuildInputs = [ base ];
355   };
357   file_path = janePackage {
358     pname = "file_path";
359     minimalOCamlVersion = "4.11";
360     hash = "0vjvxviryywwwfdazcijwhpajp2d4mavlki7lj4qaafjrw62x14k";
361     meta.description =
362       "A library for typed manipulation of UNIX-style file paths";
363     propagatedBuildInputs = [
364       async
365       core
366       core_kernel
367       core_unix
368       expect_test_helpers_async
369       expect_test_helpers_core
370       ppx_jane
371     ];
372   };
374   fuzzy_match = janePackage {
375     pname = "fuzzy_match";
376     hash = "0s5w81698b07l5m11nwx8xbjcpmp54dnf5fcrnlva22jrlsf14h4";
377     meta.description = "A library for fuzzy string matching";
378     propagatedBuildInputs = [ core ppx_jane ];
379   };
381   fzf = janePackage {
382     pname = "fzf";
383     minimalOCamlVersion = "4.08";
384     hash = "1ha0i6dx5bgwzbdi4rn98wjwi2imv5p2i7qs7hy0c6cmg88xbdry";
385     meta.description = "A library for running the fzf command line tool";
386     propagatedBuildInputs = [ async core_kernel ppx_jane ];
387     postPatch = ''
388       substituteInPlace src/fzf.ml --replace /usr/bin/fzf ${fzf}/bin/fzf
389     '';
390   };
392   higher_kinded = janePackage {
393     pname = "higher_kinded";
394     minimalOCamlVersion = "4.09";
395     hash = "0rafxxajqswi070h8sinhjna0swh1hc6d7i3q7y099yj3wlr2y1l";
396     meta.description = "A library with an encoding of higher kinded types in OCaml";
397     propagatedBuildInputs = [ base ppx_jane ];
398   };
400   incr_dom = janePackage {
401     pname = "incr_dom";
402     hash = "1sija9w2im8vdp61h387w0mww9hh7jgkgsjcccps4lbv936ac7c1";
403     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
404     buildInputs = [ js_of_ocaml-ppx ];
405     propagatedBuildInputs = [ async_js incr_map incr_select virtual_dom ];
406     patches = [ ./incr_dom_jsoo_4_0.patch ];
407   };
409   incr_map = janePackage {
410     pname = "incr_map";
411     hash = "0aq8wfylvq68him92vzh1fqmr7r0lfwc5cdiqr10r5x032vzpnii";
412     meta.description = "Helpers for incremental operations on map like data structures";
413     buildInputs = [ ppx_pattern_bind ];
414     propagatedBuildInputs = [ abstract_algebra incremental ];
415   };
417   incr_select = janePackage {
418     pname = "incr_select";
419     hash = "0qm2i4hb5jh2ra95kq881s4chkwbd2prvql1c0nahd63h829m57l";
420     meta.description = "Handling of large set of incremental outputs from a single input";
421     propagatedBuildInputs = [ incremental ];
422   };
424   incremental = janePackage {
425     pname = "incremental";
426     hash = "1dp30mhljnbcxqimydwbmxx0x4y4xnb55gyhldm1f5qrwdxdl747";
427     meta.description = "Library for incremental computations";
428     propagatedBuildInputs = [ core_kernel ];
429   };
431   int_repr = janePackage {
432     pname = "int_repr";
433     hash = "0ph88ym3s9dk30n17si2xam40sp8wv1xffw5cl3bskc2vfya1nvl";
434     meta.description = "Integers of various widths";
435     propagatedBuildInputs = [ base ppx_jane ];
436   };
438   jane-street-headers = janePackage {
439     pname = "jane-street-headers";
440     hash = "1lzk3w66x4429n2j75lwm55xafc46mywgdrbh9nc9jwqwgzf0wwx";
441     minimalOCamlVersion = "4.04.2";
442     meta.description = "Jane Street C header files";
443   };
445   jsonaf = janePackage {
446     pname = "jsonaf";
447     hash = "1j9rn8vsvfpgmdpmdqb5qhvss5171j8n3ii1bcgnavqinchbvqa6";
448     meta.description = "A library for parsing, manipulating, and serializing data structured as JSON";
449     propagatedBuildInputs = [ base ppx_jane angstrom faraday ];
450   };
452   jst-config = janePackage {
453     pname = "jst-config";
454     hash = "1lxqsj5k3v8p7g802vj1xc6bs5wrfpszh3q61xvpcd42pf3ahma9";
455     meta.description = "Compile-time configuration for Jane Street libraries";
456     buildInputs = [ dune-configurator ppx_assert stdio ];
457     patches = [
458       # remove on next release
459       (fetchpatch {
460         url = "https://github.com/janestreet/jst-config/commit/e5fdac6e5df9ba93e014a4d2db841fdbf209446f.patch";
461         sha256 = "sha256-8hVC76z5ilYD/++xRHVswy/l+zzDt63jH4hfSJ/rPaA=";
462       })
463     ];
464   };
466   ocaml-compiler-libs = janePackage {
467     pname = "ocaml-compiler-libs";
468     version = "0.12.4";
469     minimalOCamlVersion = "4.04.1";
470     hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
471     meta.description = "OCaml compiler libraries repackaged";
472   };
474   ocaml-embed-file = janePackage {
475     pname = "ocaml-embed-file";
476     hash = "1nzgc0q05f0j3q1kwfpyhhhpgwrfjvmkqqifrkrm4y7d1i44bfnw";
477     propagatedBuildInputs = [ async ppx_jane ];
478     meta.description = "Files contents as module constants";
479   };
481   ocaml_intrinsics = janePackage {
482     pname = "ocaml_intrinsics";
483     minimalOCamlVersion = "4.08";
484     version = "0.15.2";
485     hash = "sha256-f5zqrKaokj1aEvbu7lOuK0RoWSklFr6QFpV+oWbIX9U=";
486     meta.description = "Intrinsics";
487     buildInputs = [ dune-configurator ];
488     doCheck = false; # test rules broken
489   };
491   parsexp = janePackage {
492     pname = "parsexp";
493     hash = "1grzpxi39318vcqhwf723hqh11k68irh59zb3dyg9lw8wjn7752a";
494     minimalOCamlVersion = "4.04.2";
495     meta.description = "S-expression parsing library";
496     propagatedBuildInputs = [ base sexplib0 ];
497   };
499   patdiff = janePackage {
500     pname = "patdiff";
501     hash = "0623a7n5r659rkxbp96g361mvxkcgc6x9lcbkm3glnppplk5kxr9";
503     # Used by patdiff-git-wrapper.  Providing it here also causes the shebang
504     # line to be automatically patched.
505     buildInputs = [ bash ];
506     propagatedBuildInputs = [ core_unix patience_diff ocaml_pcre ];
507     meta = {
508       description = "File Diff using the Patience Diff algorithm";
509     };
510   };
512   patience_diff = janePackage {
513     pname = "patience_diff";
514     hash = "17yrhn4qfi31m8g1ygb3m6i9z4fqd8f60fn6viazgx06s3x4xp3v";
515     meta.description = "Diff library using Bram Cohen's patience diff algorithm";
516     propagatedBuildInputs = [ core_kernel ];
517   };
519   posixat = janePackage {
520     pname = "posixat";
521     hash = "1xgycwa0janrfn9psb7xrm0820blr82mqf1lvjy9ipqalj7v9w1f";
522     minimalOCamlVersion = "4.07";
523     propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv ];
524     meta.description = "Binding to the posix *at functions";
525   };
527   ppx_accessor = janePackage {
528     pname = "ppx_accessor";
529     minimalOCamlVersion = "4.09";
530     hash = "0qv51if1nk0zff2v6q946h8ac7bpd5xa4ivyixl9g4h2mk29w4qb";
531     meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
532     propagatedBuildInputs = [ accessor ];
533   };
535   ppx_assert = janePackage {
536     pname = "ppx_assert";
537     hash = "0dic250q3flrjs3i70a2qqqnhqqj75ddlixpy7hdfghjw32azw90";
538     minimalOCamlVersion = "4.04.2";
539     meta.description = "Assert-like extension nodes that raise useful errors on failure";
540     propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ];
541   };
543   ppx_base = janePackage {
544     pname = "ppx_base";
545     hash = "13rfmy2fxvwi7z5l1mai474ri5anqjm8q4hs7dblplsjjd9m5ld1";
546     minimalOCamlVersion = "4.04.2";
547     meta.description = "Base set of ppx rewriters";
548     propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ];
549   };
551   ppx_bench = janePackage {
552     pname = "ppx_bench";
553     version = "0.15.1";
554     hash = "sha256-2uk3NfpAODScoQtqiU+ZaOE8zOqkayn/jpfn3GQ4vQg=";
555     minimalOCamlVersion = "4.04.2";
556     meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
557     propagatedBuildInputs = [ ppx_inline_test ];
558   };
560   ppx_bin_prot = janePackage {
561     pname = "ppx_bin_prot";
562     hash = "1280wsls061fmvmdysjqn3lv4mnkyg400jnjf4jyfr14s33h1ad5";
563     minimalOCamlVersion = "4.04.2";
564     meta.description = "Generation of bin_prot readers and writers from types";
565     propagatedBuildInputs = [ bin_prot ppx_here ];
566     doCheck = false; # circular dependency with ppx_jane
567   };
569   ppx_cold = janePackage {
570     pname = "ppx_cold";
571     hash = "0x7xgpvy0l28k971xy08ibhr4w9nh8d9zvxc6jfxxx4fbfcv5gca";
572     minimalOCamlVersion = "4.04.2";
573     meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
574     propagatedBuildInputs = [ ppxlib ];
575   };
577   ppx_compare = janePackage {
578     pname = "ppx_compare";
579     hash = "1wjwqkr71p61vjidbr80l93y4kkad7xsfyp04w8qfqrj7h5nm625";
580     minimalOCamlVersion = "4.04.2";
581     meta.description = "Generation of comparison functions from types";
582     propagatedBuildInputs = [ ppxlib base ];
583   };
585   ppx_conv_func = janePackage {
586     pname = "ppx_conv_func";
587     hash = "sha256-61jX8yHZYOnMx1Jlqaq9zSOz25HLOa0Wv/iG6Hu82zI=";
588     meta.description = "Part of the Jane Street's PPX rewriters collection";
589     propagatedBuildInputs = [ ppxlib base ];
590   };
592   ppx_custom_printf = janePackage {
593     pname = "ppx_custom_printf";
594     hash = "1k8nmq6kwqz2wpkm9ymq749dz1vd8lxrjc711knp1wyz5935hnsv";
595     minimalOCamlVersion = "4.04.2";
596     meta.description = "Printf-style format-strings for user-defined string conversion";
597     propagatedBuildInputs = [ ppx_sexp_conv ];
598   };
600   ppx_css = janePackage {
601     pname = "ppx_css";
602     hash = "09dpmj3f3m3z1ji9hq775iqr3cfmv5gh7q9zlblizj4wx4y0ibyi";
603     meta.description = "A ppx that takes in css strings and produces a module for accessing the unique names defined within";
604     propagatedBuildInputs = [ core_kernel ppxlib js_of_ocaml js_of_ocaml-ppx sedlex ];
605   };
607   ppx_csv_conv = janePackage {
608     pname = "ppx_csv_conv";
609     hash = "sha256-ctwgUs1buBZiNqac4760LhWd2/PMZRuxx8SE5T7yZ+g=";
610     meta.description = "Generate functions to read/write records in csv format";
611     propagatedBuildInputs = [ csvfields ppx_conv_func ];
612   };
614   ppx_disable_unused_warnings = janePackage {
615     pname = "ppx_disable_unused_warnings";
616     hash = "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955";
617     minimalOCamlVersion = "4.04.2";
618     meta.description = "Expands [@disable_unused_warnings] into [@warning \"-20-26-32-33-34-35-36-37-38-39-60-66-67\"]";
619     propagatedBuildInputs = [ ppxlib ];
620   };
622   ppx_enumerate = janePackage {
623     pname = "ppx_enumerate";
624     hash = "1i0f6jv5cappw3idd70wpg76d7x6mvxapa89kri1bwz47hhg4pkz";
625     minimalOCamlVersion = "4.04.2";
626     meta.description = "Generate a list containing all values of a finite type";
627     propagatedBuildInputs = [ ppxlib ];
628   };
630   ppx_expect = janePackage {
631     pname = "ppx_expect";
632     version = "0.15.1";
633     hash = "sha256-qlOipzTTdN9yQ35sItKmWpCv74kbuJLDg4IHNVTKvow=";
634     minimalOCamlVersion = "4.04.2";
635     meta.description = "Cram like framework for OCaml";
636     propagatedBuildInputs = [ ppx_here ppx_inline_test re ];
637     doCheck = false; # test build rules broken
638   };
640   ppx_fields_conv = janePackage {
641     pname = "ppx_fields_conv";
642     hash = "094wsnw7fcwgl9xg6vkjb0wbgpn9scsp847yhdd184sz9v1amz14";
643     minimalOCamlVersion = "4.04.2";
644     meta.description = "Generation of accessor and iteration functions for ocaml records";
645     propagatedBuildInputs = [ fieldslib ppxlib ];
646   };
648   ppx_fixed_literal = janePackage {
649     pname = "ppx_fixed_literal";
650     hash = "10siwcqrqa4gh0mg6fkaby0jjskc01r81pcblc67h3vmbjjh08j9";
651     minimalOCamlVersion = "4.04.2";
652     meta.description = "Simpler notation for fixed point literals";
653     propagatedBuildInputs = [ ppxlib ];
654   };
656   ppx_hash = janePackage {
657     pname = "ppx_hash";
658     hash = "15agkwavadllzxdv4syjna02083nfnap8qs4yqf5s0adjw73fzyg";
659     minimalOCamlVersion = "4.04.2";
660     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
661     propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
662   };
664   ppx_here = janePackage {
665     pname = "ppx_here";
666     hash = "0jv81k8x18q8rxdyfwavrvx8yq9k5m3abpmgdg6zipx2ajcjzvag";
667     minimalOCamlVersion = "4.04.2";
668     meta.description = "Expands [%here] into its location";
669     propagatedBuildInputs = [ ppxlib ];
670     doCheck = false; # test build rules broken
671   };
673   ppx_ignore_instrumentation = janePackage {
674     pname = "ppx_ignore_instrumentation";
675     hash = "16fgig88g3jr0m3i636fr52h29h1yzhi8nhnl4029zn808kcdyj2";
676     minimalOCamlVersion = "4.08";
677     meta.description = "Ignore Jane Street specific instrumentation extensions";
678     propagatedBuildInputs = [ ppxlib ];
679   };
681   ppx_inline_test = janePackage {
682     pname = "ppx_inline_test";
683     version = "0.15.1";
684     hash = "sha256-9Up4/VK4gayuwbPc3r6gVRj78ILO2G3opL5UDOTKOgk=";
685     minimalOCamlVersion = "4.04.2";
686     meta.description = "Syntax extension for writing in-line tests in ocaml code";
687     propagatedBuildInputs = [ ppxlib time_now ];
688     doCheck = false; # test build rules broken
689   };
691   ppx_jane = janePackage {
692     pname = "ppx_jane";
693     hash = "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk";
694     minimalOCamlVersion = "4.04.2";
695     meta.description = "Standard Jane Street ppx rewriters";
696     propagatedBuildInputs = [ base_quickcheck ppx_bin_prot ppx_disable_unused_warnings ppx_expect ppx_fixed_literal ppx_ignore_instrumentation ppx_log ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_stable ppx_string ppx_typerep_conv ppx_variants_conv ];
697   };
699   ppx_jsonaf_conv = janePackage {
700     pname = "ppx_jsonaf_conv";
701     version = "0.15.1";
702     hash = "0wprs7qmscklyskj4famhaqqisi6jypy414aqba14qdyi43w0cv3";
703     minimalOCamlVersion = "4.08";
704     meta.description =
705       "[@@deriving] plugin to generate Jsonaf conversion functions";
706     propagatedBuildInputs = [ base jsonaf ppx_jane ppxlib ];
707   };
709   ppx_js_style = janePackage {
710     pname = "ppx_js_style";
711     hash = "0q2p9pvmlncgv0hprph95xiv7s6q44ynvp4yl4dckf1qx68rb3ba";
712     minimalOCamlVersion = "4.04.2";
713     meta.description = "Code style checker for Jane Street Packages";
714     propagatedBuildInputs = [ octavius ppxlib ];
715   };
717   ppx_let = janePackage {
718     pname = "ppx_let";
719     hash = "04v3fq0vnvvavxbc7hfsrg8732pwxbyw8pjl3xfplqdqci6fj15n";
720     minimalOCamlVersion = "4.04.2";
721     meta.description = "Monadic let-bindings";
722     propagatedBuildInputs = [ ppxlib ppx_here ];
723   };
725   ppx_log = janePackage {
726     pname = "ppx_log";
727     hash = "08i9gz3f4w3bmlrfdw7ja9awsfkhhldz03bnnc4hijfmn8sawzi0";
728     minimalOCamlVersion = "4.08.0";
729     meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
730     propagatedBuildInputs = [ base ppx_here ppx_sexp_conv ppx_sexp_message sexplib ];
731   };
733   ppx_module_timer = janePackage {
734     pname = "ppx_module_timer";
735     hash = "0lzi5hxi10p89ddqbrc667267f888kqslal76gfhmszyk60n20av";
736     minimalOCamlVersion = "4.04.2";
737     meta.description = "Ppx rewriter that records top-level module startup times";
738     propagatedBuildInputs = [ time_now ];
739   };
741   ppx_optcomp = janePackage {
742     pname = "ppx_optcomp";
743     hash = "0ypivfipi8fcr9pqyvl2ajpcivmr1irdwwv248i4x6mggpc2pl0b";
744     minimalOCamlVersion = "4.04.2";
745     meta.description = "Optional compilation for OCaml";
746     propagatedBuildInputs = [ ppxlib ];
747   };
749   ppx_optional = janePackage {
750     pname = "ppx_optional";
751     hash = "0amxwxhkyzamgnxx400qhvxzqr3m4sazhhkc516lm007pynv7xq2";
752     minimalOCamlVersion = "4.04.2";
753     meta.description = "Pattern matching on flat options";
754     propagatedBuildInputs = [ ppxlib ];
755   };
757   ppx_pattern_bind = janePackage {
758     pname = "ppx_pattern_bind";
759     hash = "01nfdk9yvk92r7sjl4ngxfsx8fyqh2dsjxz0i299nszv9jc4rn4f";
760     minimalOCamlVersion = "4.07";
761     meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
762     propagatedBuildInputs = [ ppx_let ];
763   };
765   ppx_pipebang = janePackage {
766     pname = "ppx_pipebang";
767     hash = "0sm5dghyalhws3hy1cc2ih36az1k4q02hcgj6l26gwyma3y4irvq";
768     minimalOCamlVersion = "4.04.2";
769     meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
770     propagatedBuildInputs = [ ppxlib ];
771   };
773   ppx_python = janePackage {
774     pname = "ppx_python";
775     hash = "1d2wf0rkvxg07q6xq2zmxh6hmvnwlsmny3mm92jsg1s7bdl39gap";
776     meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
777     propagatedBuildInputs = [ ppx_base ppxlib pyml ];
778   };
780   ppx_sexp_conv = janePackage {
781     pname = "ppx_sexp_conv";
782     version = "0.15.1";
783     minimalOCamlVersion = "4.08.0";
784     hash = "sha256-NYknZHyDklr71hihM2pPFQ7uAKkuKO2DJkjtsF+xc5g=";
785     meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
786     propagatedBuildInputs = [ ppxlib sexplib0 base ];
787   };
789   ppx_sexp_message = janePackage {
790     pname = "ppx_sexp_message";
791     hash = "0a7hx50bkkc5n5msc3zzc4ixnp7674x3mallknb9j31jnd8l90nj";
792     minimalOCamlVersion = "4.04.2";
793     meta.description = "A ppx rewriter for easy construction of s-expressions";
794     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
795   };
797   ppx_sexp_value = janePackage {
798     pname = "ppx_sexp_value";
799     hash = "0kz83j9v6yz3v8c6vr9ilhkcci4hhjd6i6r6afnx72jh6i7d3hnv";
800     minimalOCamlVersion = "4.04.2";
801     meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
802     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
803   };
805   ppx_stable = janePackage {
806     pname = "ppx_stable";
807     hash = "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l";
808     minimalOCamlVersion = "4.04.2";
809     meta.description = "Stable types conversions generator";
810     propagatedBuildInputs = [ ppxlib ];
811   };
813   ppx_string = janePackage {
814     pname = "ppx_string";
815     minimalOCamlVersion = "4.04.2";
816     hash = "1dp5frk6cig5m3m5rrh2alw63snyf845x7zlkkaljip02pqcbw1s";
817     meta.description = "Ppx extension for string interpolation";
818     propagatedBuildInputs = [ ppx_base ppxlib stdio ];
819   };
821   ppx_typed_fields = janePackage {
822     pname = "ppx_typed_fields";
823     hash = "0hxililjgy4jh66b4xmphrfhv6qpp7dz7xbz3islp357hf18niqy";
824     meta.description = "GADT-based field accessors and utilities";
825     propagatedBuildInputs = [ core ppx_jane ppxlib ];
826   };
828   ppx_typerep_conv = janePackage {
829     pname = "ppx_typerep_conv";
830     minimalOCamlVersion = "4.04.2";
831     hash = "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam";
832     meta.description = "Generation of runtime types from type declarations";
833     propagatedBuildInputs = [ ppxlib typerep ];
834   };
836   ppx_variants_conv = janePackage {
837     pname = "ppx_variants_conv";
838     minimalOCamlVersion = "4.04.2";
839     hash = "1dh0bw9dn246k00pymf59yjkl6x6bxd76lkk9b5xpq2692wwlc3s";
840     meta.description = "Generation of accessor and iteration functions for ocaml variant types";
841     propagatedBuildInputs = [ variantslib ppxlib ];
842   };
844   profunctor = janePackage {
845     pname = "profunctor";
846     hash = "151vk0cagjwn0isnnwryn6gmvnpds4dyj1in9jvv5is8yij203gg";
847     meta.description = "A library providing a signature for simple profunctors and traversal of a record";
848     propagatedBuildInputs = [ base ppx_jane record_builder ];
849   };
851   protocol_version_header = janePackage {
852     pname = "protocol_version_header";
853     hash = "0s638cwf1357gg754rc4306654hhrhzqaqm2lp3yv5vj3ml8p4qy";
854     meta.description = "Protocol versioning";
855     propagatedBuildInputs = [ core_kernel ];
856   };
858   pythonlib = janePackage {
859     pname = "pythonlib";
860     version = "0.15.1";
861     hash = "sha256-j8WXVTEiBmHtoTjkbnIh31vC4IghfAMaEL19nDLx3mc=";
862     meta.description = "A library to help writing wrappers around ocaml code for python";
863     buildInputs = [ ppx_optcomp ];
864     propagatedBuildInputs = [ ppx_expect ppx_let ppx_python stdio typerep ];
865   };
867   re2 = janePackage {
868     pname = "re2";
869     hash = "0z1cajd8abrryf3gz322jpynba79nv4a2kmmcdz0314ran5w68v3";
870     meta.description = "OCaml bindings for RE2, Google's regular expression library";
871     propagatedBuildInputs = [ core_kernel ];
872     prePatch = ''
873       substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
874       substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
875     '';
876   };
878   re2_stable = janePackage {
879     pname = "re2_stable";
880     version = "0.14.0";
881     hash = "0kjc0ff6b3509s3b9n4q8ilb06d5fngdh3z58cm95vg7zkcas9w3";
882     meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
883     propagatedBuildInputs = [ core re2 ];
884   };
886   record_builder = janePackage {
887     pname = "record_builder";
888     hash = "004nqcmwll0vy47mb3d3jlk21cc6adcjy62dkv2k966n9jkh472h";
889     meta.description = "A library which provides traversal of records with an applicative";
890     propagatedBuildInputs = [ base ppx_jane ];
891   };
893   redis-async = janePackage {
894     pname = "redis-async";
895     hash = "0pccf4gkm880yyk8x4kgy5rwblkbscxav2sbis13abpms9vr7jfn";
896     meta.description = "Redis client for Async applications";
897     propagatedBuildInputs = [ async bignum core core_kernel ppx_jane ];
898   };
900   resource_cache = janePackage {
901     pname = "resource_cache";
902     hash = "13wzx8ixgbb7jj5yrps890irw2wvkchnihsn7rfrcvnvrjzzjshm";
903     meta.description = "General resource cache";
904     propagatedBuildInputs = [ async_rpc_kernel ];
905   };
907   sexp = janePackage {
908     pname = "sexp";
909     hash = "00xlsymm1mpgs8cqkb6c36vh5hfw0saghvwiqh7jry65qc5nvv9z";
910     propagatedBuildInputs = [
911       async
912       core
913       csvfields
914       jsonaf
915       re2
916       sexp_diff
917       sexp_macro
918       sexp_pretty
919       sexp_select
920     ];
921     meta.description = "S-expression swiss knife";
922   };
924   sexp_diff = janePackage {
925     pname = "sexp_diff";
926     hash = "1p5xwhj634ij4a0m5k6a3abddi5315y7is1a6ha1lifdz3v985ll";
927     propagatedBuildInputs = [ core_kernel ];
928     meta.description = "Code for computing the diff of two sexps";
929   };
931   sexp_macro = janePackage {
932     pname = "sexp_macro";
933     hash = "1l5dsv9gawmf5dg3rf8sxphp9qs3n4n038nlmf9rxzypzyn112k8";
934     propagatedBuildInputs = [ async sexplib ];
935     meta.description = "Sexp macros";
936   };
938   sexp_pretty = janePackage {
939     pname = "sexp_pretty";
940     version = "0.15.1";
941     hash = "sha256-UJEO2P4C7ZaD110MEfkG4FXfGDVAAW2TAK489faV6SM=";
942     minimalOCamlVersion = "4.07";
943     meta.description = "S-expression pretty-printer";
944     propagatedBuildInputs = [ ppx_base re sexplib ];
945   };
947   sexp_select = janePackage {
948     pname = "sexp_select";
949     hash = "0mmvga9w3gbb2gd1h4l8f1c3l2lrpn1zld2a8xgqyfqfff3vg31p";
950     minimalOCamlVersion = "4.07";
951     propagatedBuildInputs = [ base ppx_jane ];
952     meta.description = "A library to use CSS-style selectors to traverse sexp trees";
953   };
955   sexplib0 = janePackage {
956     pname = "sexplib0";
957     version = "0.15.1";
958     hash = "sha256-6K0yrCbVFcUalN4cQuDI1TvWvNDjfXXRDhJKUskbqRY=";
959     minimalOCamlVersion = "4.04.2";
960     meta.description = "Library containing the definition of S-expressions and some base converters";
961   };
963   sexplib = janePackage {
964     pname = "sexplib";
965     version = "0.15.1";
966     hash = "sha256-LkGNnp717LMHeWe1Ka6qUZcpw8fKSsd5MusaLgFjm70=";
967     minimalOCamlVersion = "4.04.2";
968     meta.description = "Library for serializing OCaml values to and from S-expressions";
969     propagatedBuildInputs = [ num parsexp ];
970   };
972   shell = janePackage {
973     pname = "shell";
974     hash = "1vzdif7w9y1kw2qynlfixwphdgiflrf43j0fzinjp9f56vlhghhy";
975     meta.description = "Yet another implementation of fork&exec and related functionality";
976     buildInputs = [ jst-config ];
977     propagatedBuildInputs = [ textutils ];
978     checkInputs = [ ounit ];
979   };
981   shexp = janePackage {
982     pname = "shexp";
983     hash = "05iswnhi92f4yvrh76j3254bvls6fbrdb56mv6vc6mi5f8z4l79i";
984     minimalOCamlVersion = "4.07";
985     propagatedBuildInputs = [ posixat spawn ];
986     meta.description = "Process library and s-expression based shell";
987   };
989   spawn = janePackage {
990     pname = "spawn";
991     minimalOCamlVersion = "4.02.3";
992     hash = "1fjr91psas5zmk1hxvxh0dchhn0pkyzlr4gg232f5g9vdgissi0p";
993     meta.description = "Spawning sub-processes";
994     buildInputs = [ ppx_expect ];
995   };
997   splay_tree = janePackage {
998     pname = "splay_tree";
999     hash = "1jxfh7f2hjrms5pm2cy1cf6ivphgiqqvyyr9hdcz8d3vi612p4dm";
1000     meta.description = "A splay tree implementation";
1001     propagatedBuildInputs = [ core_kernel ];
1002   };
1004   splittable_random = janePackage {
1005     pname = "splittable_random";
1006     hash = "0ap5z4z1aagz4z02q9642cbl25jzws9lbc2x5xkpyjlc0qcm9v3m";
1007     meta.description = "PRNG that can be split into independent streams";
1008     propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
1009   };
1011   stdio = janePackage {
1012     pname = "stdio";
1013     hash = "0g00b00kpjcadikq2asng35w7kvd24q9ldkiylwmn3gv3lrbipa8";
1014     minimalOCamlVersion = "4.04.2";
1015     meta.description = "Standard IO library for OCaml";
1016     propagatedBuildInputs = [ base ];
1017   };
1019   textutils = janePackage {
1020     pname = "textutils";
1021     hash = "1wass49h645wql9b7nck2iqlkf4648dkxvlvxixr7z80zcnb5rxr";
1022     meta.description = "Text output utilities";
1023     propagatedBuildInputs = [ core_unix textutils_kernel ];
1024   };
1026   textutils_kernel = janePackage {
1027     pname = "textutils_kernel";
1028     hash = "068g11d98wsb5a6ds0p5xybdmx5nx9bxa0k11dmh3l57kn4c169x";
1029     meta.description = "Text output utilities";
1030     propagatedBuildInputs = [ core ppx_jane uutf ];
1031   };
1033   time_now = janePackage {
1034     pname = "time_now";
1035     hash = "1pa0hyh470j9jylii4983qagb6hq2dz6s0q2fnrcph9qbw83bc0c";
1036     minimalOCamlVersion = "4.04.2";
1037     meta.description = "Reports the current time";
1038     buildInputs = [ jst-config ppx_optcomp ];
1039     propagatedBuildInputs = [ jane-street-headers base ppx_base ];
1040   };
1042   timezone = janePackage {
1043     pname = "timezone";
1044     hash = "00a007aji5rbz42kgbq1w90py6fm9k9akycs5abkcfll5rd0cbhx";
1045     meta.description = "Time-zone handling";
1046     propagatedBuildInputs = [ core_kernel ];
1047   };
1049   topological_sort = janePackage {
1050     pname = "topological_sort";
1051     hash = "0iqhp8n6g5n1ng80brjpav54229lykm2c1fc104s58lk3rqfvj9v";
1052     meta.description = "Topological sort algorithm";
1053     propagatedBuildInputs = [ ppx_jane stdio ];
1054   };
1056   typerep = janePackage {
1057     pname = "typerep";
1058     hash = "1qxfi01qim0hrgd6d0bgvpxg36i99mmm8cw4wqpr9kxyqvgzv26z";
1059     minimalOCamlVersion = "4.04.2";
1060     meta.description = "Typerep is a library for runtime types";
1061     propagatedBuildInputs = [ base ];
1062   };
1064   variantslib = janePackage {
1065     pname = "variantslib";
1066     hash = "033ns8ph6bd8g5cdfryjfcnrnzkdshppjyw5kl7cvszjfrz33ij7";
1067     minimalOCamlVersion = "4.04.2";
1068     meta.description = "Part of Jane Street's Core library";
1069     propagatedBuildInputs = [ base ];
1070   };
1072   vcaml = janePackage {
1073     pname = "vcaml";
1074     hash = "12fd29x9dgf4f14xrx7z4y1bm1wbfynrs3jismjbiqnckfpbqrib";
1075     meta.description = "OCaml bindings for the Neovim API";
1076     propagatedBuildInputs = [ angstrom-async async_extra expect_test_helpers_async faraday ];
1077   };
1079   virtual_dom = janePackage {
1080     pname = "virtual_dom";
1081     version = "0.15.1";
1082     hash = "sha256-Uv6ZDxz2/H0nHjiycUKNQwy/zZyHHmwDEHknFHwDuDs=";
1083     meta.description = "OCaml bindings for the virtual-dom library";
1084     buildInputs = [ js_of_ocaml-ppx ];
1085     propagatedBuildInputs = [ core_kernel gen_js_api js_of_ocaml lambdasoup tyxml ];
1086   };
1088   zarith_stubs_js = janePackage {
1089     pname = "zarith_stubs_js";
1090     hash = "119xgr3kla9q1bvs4a5z2ivbmsrz4db3a9z0gf77ryqg4i22ywvl";
1091     minimalOCamlVersion = "4.04.2";
1092     meta.description = "Javascripts stubs for the Zarith library";
1093   };
1095   zstandard = janePackage {
1096     pname = "zstandard";
1097     hash = "1blkv35g5q1drkc6zmc4m027gjz6vfdadra1kw1xkp1wlc2l4v3k";
1098     meta.description = "OCaml bindings to Zstandard";
1099     buildInputs = [ ppx_jane ];
1100     propagatedBuildInputs = [ core_kernel ctypes zstd ];
1101   };