Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / ocaml-modules / janestreet / old.nix
blob8b4a6ed529624a27ee5d1086a8f754313b316ca2
1 { self
2 , super
3 , lib
4 , stdenv
5 , openssl
6 }:
8 let
9   inherit (super)
10     janePackage
11     ocaml
12     ocamlbuild
13     cryptokit
14     ctypes
15     magic-mime
16     ocaml-migrate-parsetree
17     octavius
18     ounit
19     ppx_deriving
20     re
21     zarith
22     num
23     ;
27 with self;
31   # Jane Street packages, up to ppx_core
33   sexplib = janePackage {
34     pname = "sexplib";
35     meta.description = "Automated S-expression conversion";
36     version = "0.10.0";
37     hash = "1agw649n0rnf6h4y2dr1zs1970nncxgjmf90848vbxv8y9im4yy2";
38     buildInputs = [ num ];
39   };
41   base = janePackage {
42     pname = "base";
43     version = "0.9.4";
44     hash = "0x85xi66b4zwlbdwmyc99zcmawgpp75gxqbl55rr67awavw162rw";
45     propagatedBuildInputs = [ sexplib ];
46     meta.description = "Full standard library replacement for OCaml";
47   };
49   ocaml-compiler-libs = janePackage {
50     pname = "ocaml-compiler-libs";
51     hash = "1jz3nfrb6295sj4xj1j0zld8mhfj0xy2k4vlp9yf9sh3748n090l";
52     meta.description = "OCaml compiler libraries repackaged";
53   };
55   ppx_ast = janePackage ({
56     pname = "ppx_ast";
57     propagatedBuildInputs = [ ocaml-compiler-libs ocaml-migrate-parsetree ];
58     meta.description = "OCaml AST used by Jane Street ppx rewriters";
59   } // (if lib.versionAtLeast ocaml.version "4.06"
60     then {
61       version = "0.9.2";
62       hash = "1h4qf26rg23z21rrw83fakiavw9km7174p3830pg0gg4bwakvba0";
63     } else {
64       version = "0.9.1";
65       hash = "0a9rxwavy2748k0yd4db3hg1ypq7mpqnwq9si5a5qdiclgkhcggw";
66     }
67   ));
69   ppx_traverse_builtins = janePackage {
70     pname = "ppx_traverse_builtins";
71     hash = "10ajvz02ka6qimlfrq7py4ljhk8awqkga6240kn8j046b4xfyxzi";
72     meta.description = "Builtins for Ppx_traverse";
73   };
75   stdio = janePackage {
76     pname = "stdio";
77     version = "0.9.1";
78     hash = "13rj3ii0rvmklfim9ild0ib44ssdadig7a9ccjbz22m0pw84a1sx";
79     propagatedBuildInputs = [ base ];
80     meta.description = "Standard IO library for OCaml";
81   };
83   ppx_core = janePackage {
84     pname = "ppx_core";
85     hash = "15400zxxkqdimmjpdjcs36gcbxbrhylmaczlzwd6x65v1h9aydz3";
86     propagatedBuildInputs = [ ppx_ast ppx_traverse_builtins stdio ];
87     meta.description = "Jane Street's standard library for ppx rewriters";
88   };
90   # Jane Street packages, up to ppx_base
92   ppx_optcomp = janePackage {
93     pname = "ppx_optcomp";
94     hash = "1wfj6fnh92s81yncq7yyhmax7j6zpjj1sg1f3qa1f9c5kf4kkzrd";
95     propagatedBuildInputs = [ ppx_core ];
96     meta.description = "Optional compilation for OCaml";
97   };
99   ppx_driver = janePackage {
100     pname = "ppx_driver";
101     version = "0.9.1";
102     hash = "1amz49x6v4sh1v2my6618cah0zv5i7jmsapbk9ydps6419g5asay";
103     buildInputs = [ ocamlbuild ];
104     propagatedBuildInputs = [ ppx_optcomp ];
105     meta.description = "Feature-full driver for OCaml AST transformers";
106   };
108   ppx_metaquot = janePackage {
109     pname = "ppx_metaquot";
110     hash = "15qfd3s4x2pz006nx5316laxd3gqqi472x432qg4rfx4yh3vn31k";
111     propagatedBuildInputs = [ ppx_driver ];
112     meta.description = "Metaquotations for ppx_ast";
113   };
115   ppx_type_conv = janePackage {
116     pname = "ppx_type_conv";
117     hash = "0a0gxjvjiql9vg37k0akn8xr5724nv3xb7v37xpidv7ld927ks7p";
118     propagatedBuildInputs = [ ppx_metaquot ppx_deriving ];
119     meta.description = "Support Library for type-driven code generators";
120   };
122   ppx_sexp_conv = janePackage {
123     pname = "ppx_sexp_conv";
124     hash = "03cg2sym0wvpd5l7q4w9bclp589z5byygwsmnnq9h1ih56cmd55l";
125     propagatedBuildInputs = [ ppx_type_conv sexplib ];
126     meta.description = "Generation of S-expression conversion functions from type definitions";
127   };
129   ppx_compare = janePackage {
130     pname = "ppx_compare";
131     hash = "0wrszpvn1nms5sb5rb29p7z1wmqyd15gfzdj4ax8f843p5ywx3w9";
132     propagatedBuildInputs = [ ppx_type_conv ];
133     meta.description = "Generation of comparison functions from types";
134   };
136   ppx_enumerate = janePackage {
137     pname = "ppx_enumerate";
138     hash = "1dfy86j2z12p5n9yrwaakx1ngphs5246vxy279kz6i6j34cwxm46";
139     propagatedBuildInputs = [ ppx_type_conv ];
140     meta.description = "Generate a list containing all values of a finite type";
141   };
143   ppx_hash = janePackage {
144     pname = "ppx_hash";
145     hash = "1w1riy2sqd9i611sc5f5z2rqqgjl2gvvkzi5xibpv309nacnl01d";
146     propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
147     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
148   };
150   ppx_js_style = janePackage {
151     pname = "ppx_js_style";
152     hash = "09k02b1l2r7svf9l3ls69h8xydsyiang2ziigxnny2i7gy7b0w59";
153     propagatedBuildInputs = [ ppx_metaquot octavius ];
154     meta.description = "Code style checker for Jane Street Packages";
155   };
157   ppx_base = janePackage {
158     pname = "ppx_base";
159     hash = "0qikfzbkd2wyxfrvizz6rgi6vg4ykvxkivacj4gr178dbgfl5if3";
160     propagatedBuildInputs = [ ppx_enumerate ppx_hash ppx_js_style ];
161     meta.description = "Base set of ppx rewriters";
162   };
164   # Jane Street packages, up to ppx_bin_prot
166   fieldslib = janePackage {
167     pname = "fieldslib";
168     hash = "1wxh59888l1bfz9ipnbcas58gwg744icaixzdbsg4v8f7wymc501";
169     propagatedBuildInputs = [ ppx_driver ];
170     meta.description = "OCaml record fields as first class values";
171   };
173   variantslib = janePackage {
174     pname = "variantslib";
175     hash = "0kj53n62193j58q9vip8lfhhyf6w9d25wyvxzc163hx5m68yw0fz";
176     propagatedBuildInputs = [ ppx_driver ];
177     meta.description = "OCaml variants as first class values";
178   };
180   ppx_traverse = janePackage {
181     pname = "ppx_traverse";
182     hash = "1sdqgwyq0w71i03vhc5jq4jk6rsbgwhvain48fnrllpkb5kj2la2";
183     propagatedBuildInputs = [ ppx_type_conv ];
184     meta.description = "Automatic generation of open recursion classes";
185   };
187   ppx_custom_printf = janePackage {
188     pname = "ppx_custom_printf";
189     hash = "0cjy2c2c5g3qxqvwx1yb6p7kbmmpnpb1hll55f7a44x215lg8x19";
190     propagatedBuildInputs = [ ppx_sexp_conv ppx_traverse ];
191     meta.description = "Printf-style format-strings for user-defined string conversion";
192   };
194   ppx_fields_conv = janePackage {
195     pname = "ppx_fields_conv";
196     hash = "0qp8zgmk58iskzrkf4g06i471kg6lrh3wqpy9klrb8pp9mg0xr9z";
197     propagatedBuildInputs = [ fieldslib ppx_type_conv ];
198     meta.description = "Generation of accessor and iteration functions for OCaml records";
199   };
201   ppx_variants_conv = janePackage {
202     pname = "ppx_variants_conv";
203     hash = "1xayhyglgbdjqvb9123kjbwjcv0a3n3302nb0j7g8gmja8w5y834";
204     propagatedBuildInputs = [ ppx_type_conv variantslib ];
205     meta.description = "Generation of accessor and iteration functions for OCaml variant types";
206   };
208   bin_prot = janePackage {
209     pname = "bin_prot";
210     version = "0.9.1";
211     hash = "1bgcmkgz6b5i522996x589zsaiy5b3h37887lwbqvpps8by2ayvk";
212     propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
213     meta.description = "Binary protocol generator";
214   };
216   ppx_here = janePackage {
217     pname = "ppx_here";
218     hash = "0pjscw5ydxgy4fcxakgsazpp09ka057w5n2fp2dpkv2k5gil6rzh";
219     propagatedBuildInputs = [ ppx_driver ];
220     meta.description = "Expands [%here] into its location";
221   };
223   ppx_bin_prot = janePackage {
224     pname = "ppx_bin_prot";
225     hash = "0qw9zqrc5yngzrzpk9awnlnd68xrb7wz5lq807c80ibxk0xvnqn3";
226     propagatedBuildInputs = [ ppx_here bin_prot ];
227     meta.description = "Generation of bin_prot readers and writers from types";
228   };
230   # Jane Street packages, up to ppx_jane
232   ppx_assert = janePackage {
233     pname = "ppx_assert";
234     hash = "1s5c75wkc46nlcwmgic5h7f439s26ssrzrcil501c5kpib2hlv6z";
235     propagatedBuildInputs = [ ppx_sexp_conv ppx_here ppx_compare ];
236     meta.description = "Assert-like extension nodes that raise useful errors on failure";
237   };
239   ppx_inline_test = janePackage {
240     pname = "ppx_inline_test";
241     version = "0.9.2";
242     hash = "17j36ihiqprbpa2bk02449k93vaidid2sly5djrk848ccjq8n5aa";
243     propagatedBuildInputs = [ ppx_metaquot ];
244     meta.description = "Syntax extension for writing in-line tests in OCaml code";
245   };
247   typerep = janePackage {
248     pname = "typerep";
249     hash = "0hlc0xiznli1k6azv2mhm1s4xghhxqqd957np7828bfp7r8n2jy3";
250     propagatedBuildInputs = [ base ];
251     meta.description = "Runtime types for OCaml";
252   };
254   ppx_bench = janePackage {
255     pname = "ppx_bench";
256     hash = "1qk4y6c2mpw7bqjppi2nam74vs2sc89wzq162j92wsqxyqsv4p93";
257     propagatedBuildInputs = [ ppx_inline_test ];
258     meta.description = "Syntax extension for writing in-line benchmarks in OCaml code";
259   };
261   ppx_expect = janePackage {
262     pname = "ppx_expect";
263     hash = "1bik53k51wcqv088f0h10n3ms9h51yvg6ha3g1s903i2bxr3xs6b";
264     propagatedBuildInputs = [ ppx_inline_test ppx_fields_conv ppx_custom_printf ppx_assert ppx_variants_conv re ];
265     meta.description = "Cram like framework for OCaml";
266   };
268   ppx_fail = janePackage {
269     pname = "ppx_fail";
270     hash = "0qz0vlazasjyg7cv3iwpzxlvsah3zmn9dzd029xxqr1bji067s32";
271     propagatedBuildInputs = [ ppx_here ppx_metaquot ];
272     meta.description = "Add location to calls to failwiths";
273   };
275   ppx_let = janePackage {
276     pname = "ppx_let";
277     hash = "1b914a5nynwxjvfx42v61yigvjhnd548m4yqjfchf38dmqi1f4nr";
278     propagatedBuildInputs = [ ppx_driver ];
279     meta.description = "Monadic let-bindings";
280   };
282   ppx_optional = janePackage {
283     pname = "ppx_optional";
284     hash = "1vknsarxba0zcp5k2jb31wfpvqrv3bpanxbahfl5s2fwspsfdc82";
285     propagatedBuildInputs = [ ppx_metaquot ];
286     meta.description = "Pattern matching on flat options";
287   };
289   ppx_pipebang = janePackage {
290     pname = "ppx_pipebang";
291     hash = "1wyfyyjvyi94ds1p90l60wdr85q2v3fq1qdf3gnv9zjfy6sb0g9h";
292     propagatedBuildInputs = [ ppx_metaquot ];
293     meta.description = "A ppx rewriter that inlines reverse application operators |> and |!";
294   };
296   ppx_sexp_message = janePackage {
297     pname = "ppx_sexp_message";
298     hash = "0r0skyr1zf2jh48xrxbs45gzywynhlivkq24xwc0qq435fmc2jqv";
299     propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
300     meta.description = "A ppx rewriter for easy construction of s-expressions";
301   };
303   ppx_sexp_value = janePackage {
304     pname = "ppx_sexp_value";
305     hash = "0hha5mmx700m8fy9g4znb8278l09chgwlpshny83vsmmzgq2jhah";
306     propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
307     meta.description = "A ppx rewriter that simplifies building s-expressions from OCaml values";
308   };
310   ppx_typerep_conv = janePackage {
311     pname = "ppx_typerep_conv";
312     hash = "0bzgfpbqijwxm8x9jq1zb4xi5sbzymk17lw5rylri3hf84p60aq1";
313     propagatedBuildInputs = [ ppx_type_conv typerep ];
314     meta.description = "Generation of runtime types from type declarations";
315   };
317   ppx_jane = janePackage {
318     pname = "ppx_jane";
319     hash = "16m5iw0qyp452nqj83kd0g0x3rw40lrz7392hwpd4di1wi6v2qzc";
320     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 ];
321     meta.description = "Standard Jane Street ppx rewriters";
322   };
324   # Jane Street packages, up to core
326   configurator = janePackage {
327     pname = "configurator";
328     version = "0.9.1";
329     hash = "1q0s0ghcrcrxdj6zr9zr27g7sr4qr9l14kizjphwqwwvgbzawdix";
330     propagatedBuildInputs = [ ppx_base ];
331     meta.description = "Helper library for gathering system configuration";
332   };
334   jane-street-headers = janePackage {
335     pname = "jane-street-headers";
336     hash = "0cdab6sblsidjbwvyvmspykyhqh44rpsjzi2djbfd5m4vh2h14gy";
337     meta.description = "Jane Street header files";
338   };
340   core_kernel = janePackage {
341     pname = "core_kernel";
342     hash = "05iwvggx9m81x7ijgv9gcv5znf5rmsmb76dg909bm9gkr3hbh7wh";
343     propagatedBuildInputs = [ configurator jane-street-headers ppx_jane ];
344     meta.description = "Jane Street's standard library overlay (kernel)";
345   };
347   spawn = janePackage {
348     pname = "spawn";
349     hash = "1w53b8ni06ajj62yaqjy0pkbm952l0m5fzr088yk15078qaxsnb5";
350     meta.description = "Spawning sub-processes";
351   };
353   core = janePackage {
354     pname = "core";
355     version = "0.9.1";
356     hash = "1643r0namsgj8xwfr9niimcdwyyq4ddiwd02d73ipb4a8710aqi8";
357     propagatedBuildInputs = [ core_kernel spawn ];
358     meta.description = "Jane Street's standard library overlay";
359   };
361   # Jane Street packages, up to core_extended
363   re2 = janePackage {
364     pname = "re2";
365     hash = "1qmhl3yd6y0lq401rz72b1bsbpglb0wighpxn3x8y1ixq415p4xi";
366     propagatedBuildInputs = [ core_kernel ];
367     meta = {
368       description = "OCaml bindings for RE2";
369       broken = stdenv.isDarwin;
370     };
371   };
373   textutils = janePackage {
374     pname = "textutils";
375     hash = "1y6j2qw7rc8d80343lfv1dygnfrhn2qllz57mx28pl5kan743f6d";
376     propagatedBuildInputs = [ core ];
377     meta.description = "Text output utilities";
378   };
380   core_extended = janePackage {
381     pname = "core_extended";
382     hash = "05cnzzj0kigz9c9gsmd6mfar82wmkbqm9qzrydb80sy2fz5b30rk";
383     propagatedBuildInputs = [ core re2 textutils ];
384     postPatch = ''
385       patchShebangs src/discover.sh
386     '';
387     meta = {
388       description = "Jane Street Capital's standard library overlay";
389     };
390   };
392   # Jane Street async packages
394   async_kernel = janePackage {
395     pname = "async_kernel";
396     hash = "1zwxhzy7f9900rcjls2fql9cpfmwrcah3fazzdz4h2i51f41w62x";
397     propagatedBuildInputs = [ core_kernel ];
398     meta.description = "Jane Street Capital's asynchronous execution library (core)";
399   };
401   async_rpc_kernel = janePackage {
402     pname = "async_rpc_kernel";
403     hash = "1xk3s6s3xkj182p10kig2cqy8md6znif3v661h9cd02n8s57c40b";
404     propagatedBuildInputs = [ core_kernel async_kernel ];
405     meta.description = "Platform-independent core of Async RPC library";
406   };
408   async_unix = janePackage {
409     pname = "async_unix";
410     hash = "0yd4z28j5vdj2zxqi0fkgh2ic1s9h740is2dk0raga0zr5a1z03d";
411     propagatedBuildInputs = [ core async_kernel ];
412     meta.description = "Jane Street Capital's asynchronous execution library (unix)";
413   };
415   async_extra = janePackage {
416     pname = "async_extra";
417     hash = "0rpy5lc5dh5mir7flq1jrppd8imby8wyw191yg4nmklg28xp5sx0";
418     propagatedBuildInputs = [ async_rpc_kernel async_unix ];
419     meta.description = "Jane Street's asynchronous execution library (extra)";
420   };
422   async = janePackage {
423     pname = "async";
424     hash = "10ykzym19srgdiikj0s74dndx5nk15hjq1r2hc61iz48f6caxkb1";
425     propagatedBuildInputs = [ async_extra ];
426     meta.description = "Jane Street Capital's asynchronous execution library";
427   };
429   async_find = janePackage {
430     pname = "async_find";
431     hash = "11dmhdzgf5kn4m0cm6zr28wpwhi2kr4lak9nmgxbrxsq28bcncxq";
432     propagatedBuildInputs = [ async ];
433     meta.description = "Directory traversal with Async";
434   };
436   async_interactive = janePackage {
437     pname = "async_interactive";
438     hash = "1mmqqp6bi2wg7bmgf0sw34jn3iyl5kbm200dax8yqq6rfprcs49j";
439     propagatedBuildInputs = [ async ];
440     meta.description = "Utilities for building simple command-line based user interfaces";
441   };
443   async_parallel = janePackage {
444     pname = "async_parallel";
445     hash = "0mdprhr1pv4g65g10gr3gaifrzknsdgarwfdbjlvhzfs86075kyn";
446     propagatedBuildInputs = [ async ];
447     meta.description = "Distributed computing library";
448   };
450   async_shell = janePackage {
451     pname = "async_shell";
452     hash = "02clpz3xv3i5avzifwalylb9gfxzpgnr8bnlfsjixxfk2m7kvsj2";
453     propagatedBuildInputs = [ core_extended async ];
454     meta = {
455       description = "Shell helpers for Async";
456     };
457   };
459   async_ssl = janePackage {
460     pname = "async_ssl";
461     hash = "01w3bg38q61lc3hfh8jsr0sy1ylyv0m6g6h9yvsk8ngj6qk70nss";
462     propagatedBuildInputs = [ async ctypes openssl ];
463     meta.description = "Async wrappers for SSL";
464   };
466   # Jane Street packages, up to expect_test_helpers
468   sexp_pretty = janePackage {
469     pname = "sexp_pretty";
470     hash = "1bx8va468j5b813m0vsh1jzgb6h2qnnjfmjlf2hb82sarv8lllfx";
471     propagatedBuildInputs = [ ppx_base re ];
472     meta.description = "S-expression pretty-printer";
473   };
475   expect_test_helpers_kernel = janePackage {
476     pname = "expect_test_helpers_kernel";
477     hash = "1ycqir8sqgq5nialnrfg29nqn0cqg6jjpgv24drdycdhqf5r2zg6";
478     propagatedBuildInputs = [ core_kernel sexp_pretty ];
479     meta.description = "Helpers for writing expectation tests";
480   };
482   expect_test_helpers = janePackage {
483     pname = "expect_test_helpers";
484     hash = "0rsh6rwbqfcrqisk8jp7srlnicsadbzrs02ri6zyx0p3lmznw5r2";
485     propagatedBuildInputs = [ async expect_test_helpers_kernel ];
486     meta.description = "Async helpers for writing expectation tests";
487   };
489   # Miscellaneous Jane Street packages
491   bignum = janePackage {
492     pname = "bignum";
493     hash = "0g80mzsi7vc1kq4mzha8y9nl95h6cd041vix3wjrqgkdvb1qd4f3";
494     propagatedBuildInputs = [ core_kernel zarith ];
495     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
496   };
498   cinaps = janePackage {
499     pname = "cinaps";
500     hash = "02fpjiwrygkpx2q4jfldhbqh0mqxmf955wizr8k4vmsq4wsis0p5";
501     propagatedBuildInputs = [ re ];
502     meta.description = "Trivial Metaprogramming tool using the OCaml toplevel";
503   };
505   command_rpc = janePackage {
506     pname = "command_rpc";
507     hash = "0w58z9jkz5qzbvf33wrzhfshzdvnrphj6dq8dmi52ykhfvxm7824";
508     propagatedBuildInputs = [ async ];
509     meta.description = "Utilities for Versioned RPC communication with a child process over stdin and stdout";
510   };
512   core_bench = janePackage {
513     pname = "core_bench";
514     hash = "1m2q7217nmcsck29i59djkm0h6z3aj0i01niijzr5f6ilbnmyd3h";
515     propagatedBuildInputs = [ core_extended ];
516     meta = {
517       description = "Micro-benchmarking library for OCaml";
518     };
519   };
521   core_profiler = janePackage {
522     pname = "core_profiler";
523     hash = "1ir2v3wdfbf5xzqcma16asc73mkx2q6dzq5y1bx6q1rpa7iznx44";
524     propagatedBuildInputs = [ core_extended ];
525     meta = {
526       description = "Profiling library";
527     };
528   };
530   csvfields = janePackage {
531     pname = "csvfields";
532     hash = "0lbvs1kwl22ryxhw6s089f6683hj2920bn518mvr22rnv7qijy0v";
533     propagatedBuildInputs = [ core ];
534     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
535   };
537   ecaml = janePackage {
538     pname = "ecaml";
539     hash = "1a2534bzbwgpm71aj3sm71sm0lkcjdfjj1mk91p1pg9kxn8c5x4i";
540     propagatedBuildInputs = [ async ];
541     meta.description = "Writing Emacs plugin in OCaml";
542   };
544   email_message = janePackage {
545     pname = "email_message";
546     hash = "0cpaf6wn5g883bxdz029bksvrfzih99m7hzbb30fhqglmpmmkniz";
547     propagatedBuildInputs = [ async core_extended cryptokit magic-mime ounit ];
548     meta = {
549       description = "E-mail message parser";
550     };
551   };
553   incremental_kernel = janePackage {
554     pname = "incremental_kernel";
555     hash = "0zq48wbgqcflh84n10iygi8aa3f0zzmgc7r0jwvsyg7i8zccgvf5";
556     propagatedBuildInputs = [ core_kernel ];
557     meta.description = "Library for incremental computations depending only on core_kernel";
558   };
560   incremental = janePackage {
561     pname = "incremental";
562     hash = "05sx8ia46v4dlvzcn7xgjcwxvbd0wmvv9r2bpvniapjnwr1nvcfh";
563     propagatedBuildInputs = [ core incremental_kernel ];
564     meta.description = "Library for incremental computations";
565   };
567   incr_map = janePackage {
568     pname = "incr_map";
569     hash = "0358qg9irxbbhn18laqww3mn43mdwvlbr0h2mvg3vdbb2c5jp4fv";
570     propagatedBuildInputs = [ incremental_kernel ];
571     meta.description = "Helpers for incremental operations on map like data structures";
572   };
574   ocaml_plugin = janePackage {
575     pname = "ocaml_plugin";
576     hash = "0q33swnlx9p1gcn1aj95501kapb7cnbzbsavid69csczwmzcxr14";
577     buildInputs = [ ocamlbuild ];
578     propagatedBuildInputs = [ async ];
579     meta.description = "Automatically build and dynlink ocaml source files";
580   };
582   parsexp = janePackage {
583     pname = "parsexp";
584     hash = "0brrifvnfqbfk873v6y5b2jixs2d73hpispj9r440kca5cfsv23b";
585     propagatedBuildInputs = [ ppx_compare ppx_fields_conv ppx_js_style ppx_sexp_value ];
586     meta.description = "S-expression parsing library";
587   };
589   parsexp_io = janePackage {
590     pname = "parsexp_io";
591     hash = "0gcmh4dg48xgszladq92yhk1hf492zf0smz462xrwknzlfdkz6a5";
592     propagatedBuildInputs = [ parsexp ];
593     meta.description = "S-expression parsing library (IO functions)";
594   };
596   patience_diff = janePackage {
597     pname = "patience_diff";
598     hash = "0vpx9xj1ich5qmj3m26vlmix3nsdj7pd1xzhqwbc7ad2kqwy3grg";
599     propagatedBuildInputs = [ core_kernel ];
600     meta.description = "Tool and library implementing patience diff";
601   };
603   posixat = janePackage {
604     pname = "posixat";
605     hash = "0ak93dyzi6sc6gb0j07fj85b24d8bv6g2hm7jj5xwb39kjwh51jl";
606     propagatedBuildInputs = [ ppx_sexp_conv ];
607     meta.description = "Binding to the posix *at functions";
608     meta.broken = lib.versionAtLeast ocaml.version "4.05";
609   };
611   rpc_parallel = janePackage {
612     pname = "rpc_parallel";
613     hash = "0s72msl2p27bz0knjlpgy5qwp0w4z76cq801ps0sab35f8jjfs38";
614     propagatedBuildInputs = [ async ];
615     meta.description = "Type-safe library for building parallel applications";
616   };
618   shexp = janePackage {
619     pname = "shexp";
620     hash = "1fkz4l9z4i0fz2kccd5blm2j9x2x4z6y1cn29wjmc3spqfxbq37y";
621     propagatedBuildInputs = [ posixat spawn ];
622     meta.description = "Process library and s-expression based shell";
623   };
625   topological_sort = janePackage {
626     pname = "topological_sort";
627     hash = "1d64fyq0clsgham9p1f5rk01z8pxalglp92xmqw2iznyw0vxhvsy";
628     propagatedBuildInputs = [ core_kernel ];
629     meta.description = "Topological sort algorithm";
630   };
632   typerep_extended = janePackage {
633     pname = "typerep_extended";
634     hash = "15gq8mrvlipd616rffr3f0wqw5d0ijnnizix610g2d5viirh0j9p";
635     propagatedBuildInputs = [ core_kernel ];
636     meta.description = "Runtime types for OCaml (Extended)";
637   };