libfmvoice: 0-unstable-2024-11-08 -> 0-unstable-2024-12-11 (#364919)
[NixPkgs.git] / pkgs / development / ocaml-modules / janestreet / 0.16.nix
blob30aa920fff2430956ba9fc5c3390290cc4e5bb05
2   self,
3   bash,
4   fetchpatch,
5   fzf,
6   lib,
7   openssl,
8   zstd,
9   krb5,
12 with self;
16   abstract_algebra = janePackage {
17     pname = "abstract_algebra";
18     hash = "sha256-hAZzc2ypbGE/8mxxk4GZqr17JlIYv71gZJMQ4plsK38=";
19     meta.description = "A small library describing abstract algebra concepts";
20     propagatedBuildInputs = [
21       base
22       ppx_jane
23     ];
24   };
26   accessor = janePackage {
27     pname = "accessor";
28     hash = "sha256-yClfUXqwVoipF4WqbqC6VBVYc6t8MZYVoHGjchH7XQA=";
29     meta.description = "A library that makes it nicer to work with nested functional data structures";
30     propagatedBuildInputs = [ higher_kinded ];
31   };
33   accessor_async = janePackage {
34     pname = "accessor_async";
35     hash = "sha256-kGT7aFNOgU8/2ez9L/lefb2LN7I87+WthZHnb+dY9PE=";
36     meta.description = "Accessors for Async types, for use with the Accessor library";
37     propagatedBuildInputs = [
38       accessor_core
39       async_kernel
40     ];
41   };
43   accessor_base = janePackage {
44     pname = "accessor_base";
45     hash = "sha256-idnSNP6kfoV3I8QAMJ2YoUrewBpyte+0/C371aMTIxo=";
46     meta.description = "Accessors for Base types, for use with the Accessor library";
47     propagatedBuildInputs = [ ppx_accessor ];
48   };
50   accessor_core = janePackage {
51     pname = "accessor_core";
52     hash = "sha256-f4s/I+xDi/aca1WgaE+P3CD4e80jenS0WHg4T1Stcbg=";
53     meta.description = "Accessors for Core types, for use with the Accessor library";
54     propagatedBuildInputs = [
55       accessor_base
56       core_kernel
57     ];
58   };
60   async = janePackage {
61     pname = "async";
62     hash = "sha256-TpsC9sn8noiNI0aYbMalUUv3xlC2LMERsv6Gr928Vzc=";
63     meta.description = "Monadic concurrency library";
64     propagatedBuildInputs = [
65       async_rpc_kernel
66       async_unix
67       textutils
68     ];
69     doCheck = false; # we don't have netkit_sockets
70   };
72   async_durable = janePackage {
73     pname = "async_durable";
74     hash = "sha256-PImYpM9xNFUWeWRld4jFwWBRowUP1iXzdxkK/fP/rHE=";
75     meta.description = "Durable connections for use with async";
76     propagatedBuildInputs = [
77       async_kernel
78       async_rpc_kernel
79       core
80       core_kernel
81       ppx_jane
82     ];
83   };
85   async_extra = janePackage {
86     pname = "async_extra";
87     hash = "sha256-Y+gTlJuKmwvEEPuMPu7v0iYeNQtlzP8QiS0PSgoYrrI=";
88     meta.description = "Monadic concurrency library";
89     propagatedBuildInputs = [ async_kernel ];
90   };
92   async_find = janePackage {
93     pname = "async_find";
94     hash = "sha256-PG6BJx9tfP+zcDaG+7WdHiv4jUqsUH2TvHV6UXdzPAg=";
95     meta.description = "Directory traversal with Async";
96     propagatedBuildInputs = [ async ];
97   };
99   async_inotify = janePackage {
100     pname = "async_inotify";
101     hash = "sha256-seFbs06w3T+B49sw3nOjpXpoJbJ+IJ3qN5LnufrsE48=";
102     meta.description = "Async wrapper for inotify";
103     propagatedBuildInputs = [
104       async_find
105       inotify
106     ];
107   };
109   async_interactive = janePackage {
110     pname = "async_interactive";
111     hash = "sha256-xZKVT8L2rOLBeg7wK0tD6twhkDfwQp5ZKy4DPp1UWq8=";
112     meta.description = "Utilities for building simple command-line based user interfaces";
113     propagatedBuildInputs = [ async ];
114   };
116   async_js = janePackage {
117     pname = "async_js";
118     hash = "sha256-JyF1busOv9JWxp55oaxBozIQyCKlmAY3csBA4/98qy0=";
119     meta.description = "A small library that provide Async support for JavaScript platforms";
120     buildInputs = [ js_of_ocaml-ppx ];
121     propagatedBuildInputs = [
122       async_rpc_kernel
123       js_of_ocaml
124       uri-sexp
125     ];
126   };
128   async_kernel = janePackage {
129     pname = "async_kernel";
130     hash = "sha256-EDgdZc6GRyiiFtnElNE9jGPEjPIUniP9uB/JoySkZz8=";
131     meta.description = "Monadic concurrency library";
132     propagatedBuildInputs = [ core_kernel ];
133   };
135   async_rpc_kernel = janePackage {
136     pname = "async_rpc_kernel";
137     hash = "sha256-OccFMfhTRSQwx1LJcN8OkDpA62KabsyWn2hox84jqow=";
138     meta.description = "Platform-independent core of Async RPC library";
139     propagatedBuildInputs = [
140       async_kernel
141       protocol_version_header
142     ];
143   };
145   async_rpc_websocket = janePackage {
146     pname = "async_rpc_websocket";
147     hash = "sha256-S3xIw/mew9YhtenWfp8ZD82WtOQSzJHtreT1+kRivus=";
148     meta.description = "Library to serve and dispatch Async RPCs over websockets";
149     propagatedBuildInputs = [
150       async_rpc_kernel
151       async_websocket
152       cohttp_async_websocket
153     ];
154   };
156   async_sendfile = janePackage {
157     pname = "async_sendfile";
158     hash = "sha256-ykl87/De56gz6JRQfTIeWrU823PT2fnFJr08GxuDYic=";
159     meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
160     propagatedBuildInputs = [ async_unix ];
161   };
163   async_shell = janePackage {
164     pname = "async_shell";
165     hash = "sha256-DjIbadCjPymnkDsnonmxKumCWf5P9XO3ZaAwOaYRnbk=";
166     meta.description = "Shell helpers for Async";
167     propagatedBuildInputs = [
168       async
169       shell
170     ];
171   };
173   async_smtp = janePackage {
174     pname = "async_smtp";
175     hash = "sha256-X0eegZMMU9EnC9Oi+6DjtwNmyzQYr3EKi1duNzEAfkk=";
176     meta.description = "SMTP client and server";
177     propagatedBuildInputs = [
178       async_extra
179       async_inotify
180       async_sendfile
181       async_shell
182       async_ssl
183       email_message
184       resource_cache
185       re2_stable
186       sexp_macro
187     ];
188   };
190   async_ssl = janePackage {
191     version = "0.16.1";
192     pname = "async_ssl";
193     hash = "sha256-83YKxvVb/JwBnQG4R/R1Ztik9T/hO4cbiNTfFnErpG4=";
194     meta.description = "Async wrappers for SSL";
195     buildInputs = [ dune-configurator ];
196     propagatedBuildInputs = [
197       async
198       ctypes
199       ctypes-foreign
200       openssl
201     ];
202   };
204   async_unix = janePackage {
205     pname = "async_unix";
206     hash = "sha256-dT+yJC73sxS4NPR/GC/FyVLbWtYpM9DqKykVk8PEEWU=";
207     meta.description = "Monadic concurrency library";
208     propagatedBuildInputs = [
209       async_kernel
210       core_unix
211     ];
212   };
214   async_websocket = janePackage {
215     pname = "async_websocket";
216     hash = "sha256-Qy+A8ee6u5Vr05FNeaH/6Sdp9bcq3cnaDYO9OU06VW0=";
217     meta.description = "A library that implements the websocket protocol on top of Async";
218     propagatedBuildInputs = [
219       async
220       cryptokit
221     ];
222   };
224   babel = janePackage {
225     pname = "babel";
226     hash = "sha256-nnMliU0d6vtHTYEy9uMi8nMaHvAsEXKN6uNByqZ28+c=";
227     meta.description = "A library for defining Rpcs that can evolve over time without breaking backward compatibility";
228     propagatedBuildInputs = [
229       async_rpc_kernel
230       core
231       ppx_jane
232       streamable
233       tilde_f
234     ];
235   };
237   base = janePackage {
238     pname = "base";
239     version = "0.16.2";
240     hash = "sha256-8OvZe+aiWipJ6busBufx3OqERmqxBva55UOLjL8KoPc=";
241     meta.description = "Full standard library replacement for OCaml";
242     buildInputs = [ dune-configurator ];
243     propagatedBuildInputs = [ sexplib0 ];
244     checkInputs = [ alcotest ];
245   };
247   base_bigstring = janePackage {
248     pname = "base_bigstring";
249     hash = "sha256-gQbzdr05DEowzd0k9JBTF0gGMwlaVwTVJuoKZ0u9voU=";
250     meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
251     propagatedBuildInputs = [
252       int_repr
253       ppx_jane
254     ];
255   };
257   base_trie = janePackage {
258     pname = "base_trie";
259     hash = "sha256-KV/k3B0h/4rE+MY6f4qDnlaObMmewUS+NAN2M7sb+yw=";
260     meta.description = "Trie data structure library";
261     propagatedBuildInputs = [
262       base
263       core
264       expect_test_helpers_core
265       ppx_jane
266     ];
267   };
269   base_quickcheck = janePackage {
270     pname = "base_quickcheck";
271     hash = "sha256-9Flg8vAoT6f+3lw9wETQhsaA1fSsQiqKeEhzo0qtDu4=";
272     meta.description = "Randomized testing framework, designed for compatibility with Base";
273     propagatedBuildInputs = [
274       ppx_base
275       ppx_fields_conv
276       ppx_let
277       ppx_sexp_value
278       splittable_random
279     ];
280   };
282   bidirectional_map = janePackage {
283     pname = "bidirectional_map";
284     hash = "sha256-YEzOdzanBJaskI2/xN9E3ozWnBXDyxJvY3g/qEE73yI=";
285     meta.description = "A library for bidirectional maps and multimaps";
286   };
288   bignum = janePackage {
289     pname = "bignum";
290     hash = "sha256-PmvqGImF1Nrr6swx5q3+9mCfSbieC3RvWuz8oCTkSgg=";
291     propagatedBuildInputs = [
292       core_kernel
293       zarith
294       zarith_stubs_js
295     ];
296     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
297   };
299   bin_prot = janePackage {
300     pname = "bin_prot";
301     hash = "sha256-qFkM6TrTLnnFKmzQHktBb68HpBTMYhiURvnRKEoAevk=";
302     meta.description = "A binary protocol generator";
303     propagatedBuildInputs = [
304       ppx_compare
305       ppx_custom_printf
306       ppx_fields_conv
307       ppx_optcomp
308       ppx_stable_witness
309       ppx_variants_conv
310     ];
311   };
313   bonsai = janePackage {
314     pname = "bonsai";
315     hash = "sha256-YJ+qkVG5PLBmioa1gP7y6jwn82smyyYDIwHwhDqNeWM=";
316     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
317     buildInputs = [ ppx_pattern_bind ];
318     nativeBuildInputs = [
319       ppx_css
320       js_of_ocaml-compiler
321       ocaml-embed-file
322     ];
323     propagatedBuildInputs = [
324       async
325       async_durable
326       async_extra
327       async_rpc_websocket
328       babel
329       cohttp-async
330       core_bench
331       fuzzy_match
332       incr_dom
333       indentation_buffer
334       js_of_ocaml-ppx
335       ordinal_abbreviation
336       patdiff
337       polling_state_rpc
338       ppx_css
339       ppx_typed_fields
340       profunctor
341       sexp_grammar
342       textutils
343     ];
344   };
346   cinaps = janePackage {
347     pname = "cinaps";
348     version = "0.15.1";
349     hash = "sha256-LycruanldSP251uYJjQqIfI76W0UQ6o5i5u8XjszBT0=";
350     meta.description = "Trivial metaprogramming tool";
351     minimalOCamlVersion = "4.04";
352     propagatedBuildInputs = [ re ];
353     doCheck = false; # fails because ppx_base doesn't include ppx_js_style
354   };
356   cohttp_async_websocket = janePackage {
357     pname = "cohttp_async_websocket";
358     hash = "sha256-OBtyKMyvfz0KNG4SWmvoTMVPnVTpO12N38q+kEbegJE=";
359     meta.description = "Websocket library for use with cohttp and async";
360     propagatedBuildInputs = [
361       async_ssl
362       async_websocket
363       cohttp-async
364       ppx_jane
365       uri-sexp
366     ];
367   };
369   cohttp_static_handler = janePackage {
370     pname = "cohttp_static_handler";
371     hash = "sha256-7NCnJVArudBEvWARQUGlJuEq3kSCjpn5YtsLsL04bf4=";
372     meta.description = "A library for easily creating a cohttp handler for static files";
373     propagatedBuildInputs = [ cohttp-async ];
374   };
376   content_security_policy = janePackage {
377     pname = "content_security_policy";
378     hash = "sha256-q/J+ZzeC6txyuRQzR8Hmu7cYJCQbxaMlVEmK8fj0hus=";
379     meta.description = "A library for building content-security policies";
380     propagatedBuildInputs = [
381       core
382       ppx_jane
383     ];
384   };
386   core = janePackage {
387     pname = "core";
388     version = "0.16.2";
389     hash = "sha256-cyOU++XJJkU2YMHfn8saFOxLoQSFhF7kARJi/9unbFQ=";
390     meta.description = "Industrial strength alternative to OCaml's standard library";
391     buildInputs = [ jst-config ];
392     propagatedBuildInputs = [
393       base
394       base_bigstring
395       base_quickcheck
396       ppx_jane
397       time_now
398     ];
399     doCheck = false; # circular dependency with core_kernel
400   };
402   core_bench = janePackage {
403     pname = "core_bench";
404     hash = "sha256-ASdu3ZUk+nkdNX9UbBQxKRdXBa073mWMDRW+Ceu3/t4=";
405     meta.description = "Benchmarking library";
406     propagatedBuildInputs = [ textutils ];
407   };
409   core_extended = janePackage {
410     pname = "core_extended";
411     hash = "sha256-hcjmFDdVKCHK8u6D4Qn2a/HYTEZOvkXHcB6BTpbjF/s=";
412     meta.description = "Extra components that are not as closely vetted or as stable as Core";
413     propagatedBuildInputs = [
414       core_unix
415       record_builder
416     ];
417   };
419   core_kernel = janePackage {
420     pname = "core_kernel";
421     hash = "sha256-YB3WMNLePrOKu+mmVedNo0pWN9x5fIaBxJsby56TFJU=";
422     meta.description = "System-independent part of Core";
423     buildInputs = [ jst-config ];
424     propagatedBuildInputs = [
425       base_bigstring
426       core
427       int_repr
428       sexplib
429     ];
430     doCheck = false; # we don't have quickcheck_deprecated
431   };
433   core_unix = janePackage {
434     pname = "core_unix";
435     hash = "sha256-mePpxjbUumMemHDKhRgACilchgS6QHZEV1ghYtT3flg=";
436     meta.description = "Unix-specific portions of Core";
437     buildInputs = [ jst-config ];
438     propagatedBuildInputs = [
439       core_kernel
440       expect_test_helpers_core
441       ocaml_intrinsics
442       ppx_jane
443       timezone
444       spawn
445     ];
446     postPatch = ''
447       patchShebangs unix_pseudo_terminal/src/discover.sh
448     '';
449   };
451   csvfields = janePackage {
452     pname = "csvfields";
453     hash = "sha256-FEkjRmLeqNvauBlrY2xtLZfxVfnFWU8w8noEArPUieo=";
454     propagatedBuildInputs = [
455       core
456       num
457     ];
458     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
459   };
461   dedent = janePackage {
462     pname = "dedent";
463     hash = "sha256-fzytLr3tVr2vPmykUBzNFMxnyMcIeeo8S9BydsTKnQw=";
464     propagatedBuildInputs = [
465       base
466       ppx_jane
467       stdio
468     ];
469     meta.description = "A library for improving redability of multi-line string constants in code";
470   };
472   delimited_parsing = janePackage {
473     pname = "delimited_parsing";
474     hash = "sha256-XyO3hzPz48i1cnMTJvZfarM6HC7qdHqdftp9SnCjPEU=";
475     propagatedBuildInputs = [
476       async
477       core_extended
478     ];
479     meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
480   };
482   diffable = janePackage {
483     pname = "diffable";
484     hash = "sha256-ascQUbxzvRR8XrroaupyFZ2YNQMvlXn4PemumYTwRF4=";
485     propagatedBuildInputs = [
486       core
487       ppx_jane
488       stored_reversed
489       streamable
490     ];
491     meta.description = "An interface for diffs";
492   };
494   ecaml = janePackage {
495     pname = "ecaml";
496     hash = "sha256-VS7eTTD85ci3mJIXd2pG1Y/ygT9dCIvfzU2HtOufW6U=";
497     meta.description = "Library for writing Emacs plugin in OCaml";
498     propagatedBuildInputs = [
499       async
500       expect_test_helpers_core
501     ];
502   };
504   email_message = janePackage {
505     pname = "email_message";
506     hash = "sha256-eso68owbAspjaVgj/wGFQ7VQYlAwyYV3oNitLQWiRPA=";
507     meta.description = "E-mail message parser";
508     propagatedBuildInputs = [
509       angstrom
510       async
511       base64
512       cryptokit
513       magic-mime
514       re2
515     ];
516   };
518   env_config = janePackage {
519     pname = "env_config";
520     hash = "sha256-CvvpKI7F40DVC7iByrzCqW1ilPiIhdDPYaJrDoUZVSs=";
521     meta.description = "Helper library for retrieving configuration from an environment variable";
522     propagatedBuildInputs = [
523       async
524       core
525       core_unix
526       ppx_jane
527     ];
528   };
530   expect_test_helpers_async = janePackage {
531     pname = "expect_test_helpers_async";
532     hash = "sha256-dEvOMb1aCEt05XtkKIC9jWoIQ/2zM0Gj+K/ZN3bFjeI=";
533     meta.description = "Async helpers for writing expectation tests";
534     propagatedBuildInputs = [
535       async
536       expect_test_helpers_core
537     ];
538   };
540   expect_test_helpers_core = janePackage {
541     pname = "expect_test_helpers_core";
542     hash = "sha256-8DsMwk9WhQQ7iMNYSFBglfbcgvE5dySt4J4qjzJ3dJk=";
543     meta.description = "Helpers for writing expectation tests";
544     propagatedBuildInputs = [
545       core_kernel
546       sexp_pretty
547     ];
548   };
550   fieldslib = janePackage {
551     pname = "fieldslib";
552     hash = "sha256-dwkO65sBsPfTF0F2FKrnttEjhAY2OMbJetSgOfUXk3A=";
553     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";
554     propagatedBuildInputs = [ base ];
555   };
557   file_path = janePackage {
558     pname = "file_path";
559     hash = "sha256-EEpDZNgUgyeqivRhZgQWWlerl+7OOcvAbjjQ3e1NYOQ=";
560     meta.description = "A library for typed manipulation of UNIX-style file paths";
561     propagatedBuildInputs = [
562       async
563       core
564       core_kernel
565       core_unix
566       expect_test_helpers_async
567       expect_test_helpers_core
568       ppx_jane
569     ];
570   };
572   fuzzy_match = janePackage {
573     pname = "fuzzy_match";
574     hash = "sha256-M3yOqP0/OZFbqZZpgDdhJ/FZU3MhKwIXbWjwuMlxe2Q=";
575     meta.description = "A library for fuzzy string matching";
576     propagatedBuildInputs = [
577       core
578       ppx_jane
579     ];
580   };
582   fzf = janePackage {
583     pname = "fzf";
584     hash = "sha256-IQ2wze34LlOutecDOrPhj3U7MFVJTSjQW+If3QyHoes=";
585     meta.description = "A library for running the fzf command line tool";
586     propagatedBuildInputs = [
587       async
588       core_kernel
589       ppx_jane
590     ];
591     postPatch = ''
592       substituteInPlace src/fzf.ml --replace /usr/bin/fzf ${fzf}/bin/fzf
593     '';
594   };
596   hex_encode = janePackage {
597     pname = "hex_encode";
598     hash = "sha256-jnsf5T1D1++AUdrato/NO3gTVXu14klXozHFIG9HH/o=";
599     meta.description = "Hexadecimal encoding library";
600     propagatedBuildInputs = [
601       core
602       ppx_jane
603       ounit
604     ];
605   };
607   higher_kinded = janePackage {
608     pname = "higher_kinded";
609     hash = "sha256-aCpYc7f4mrPsGp038YabEyw72cA6GbCKsok+5Hej5P0=";
610     meta.description = "A library with an encoding of higher kinded types in OCaml";
611     propagatedBuildInputs = [
612       base
613       ppx_jane
614     ];
615   };
617   incr_dom = janePackage {
618     pname = "incr_dom";
619     hash = "sha256-fnD/YnaGK6MIy/fL6bDwcoGDJhHo2+1l8dCXxwN28kg=";
620     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
621     buildInputs = [ js_of_ocaml-ppx ];
622     propagatedBuildInputs = [
623       async_js
624       incr_map
625       incr_select
626       virtual_dom
627     ];
628   };
630   incr_map = janePackage {
631     pname = "incr_map";
632     hash = "sha256-D3ZD0C4YfZOfXw+3CtqL8DKcz+b06UL8AF7Rf9x+hps=";
633     meta.description = "Helpers for incremental operations on map like data structures";
634     buildInputs = [ ppx_pattern_bind ];
635     propagatedBuildInputs = [
636       abstract_algebra
637       bignum
638       diffable
639       incremental
640       streamable
641     ];
642   };
644   incr_select = janePackage {
645     pname = "incr_select";
646     hash = "sha256-gRUF0QsDaZfHU7Mexl5nR8xCN+65v28/r/ciueR5NdE=";
647     meta.description = "Handling of large set of incremental outputs from a single input";
648     propagatedBuildInputs = [ incremental ];
649   };
651   incremental = janePackage {
652     pname = "incremental";
653     hash = "sha256-PXGY0M2xeVWDLeS3SrqXy1dqsyeKgndGT6NpuiyNQQQ=";
654     meta.description = "Library for incremental computations";
655     propagatedBuildInputs = [
656       core_kernel
657       lru_cache
658     ];
659   };
661   indentation_buffer = janePackage {
662     pname = "indentation_buffer";
663     hash = "sha256-5ayWs7yUnuxh5S3Dp0GbYTkGXttDMomfZak4MHePFbk=";
664     meta.description = "A library for building strings with indentation";
665     propagatedBuildInputs = [
666       core
667       ppx_jane
668     ];
669   };
671   int_repr = janePackage {
672     pname = "int_repr";
673     hash = "sha256-lghu2U1JwZaR4dkd9PcJEW3pZSPoaFhUluIDwFAYFK0=";
674     meta.description = "Integers of various widths";
675     propagatedBuildInputs = [
676       base
677       ppx_jane
678     ];
679   };
681   janestreet_cpuid = janePackage {
682     pname = "janestreet_cpuid";
683     hash = "sha256-lN8+8uhcVn3AoApWzqeCe/It1G6f0VgZzFcwFEckejk=";
684     meta.description = "A library for parsing CPU capabilities out of the `cpuid` instruction";
685     propagatedBuildInputs = [
686       core
687       core_kernel
688       ppx_jane
689     ];
690   };
692   janestreet_csv = janePackage {
693     pname = "janestreet_csv";
694     hash = "sha256-XLyHxVlgBvMIBrG2wzOudbKqy+N12Boheb3K+6o9y1o=";
695     propagatedBuildInputs = [
696       async
697       bignum
698       core_kernel
699       core_unix
700       csvfields
701       delimited_parsing
702       fieldslib
703       numeric_string
704       ppx_jane
705       re2
706       textutils
707       tyxml
708       ocaml_pcre
709     ];
710     meta.description = "Tools for working with CSVs on the command line";
711   };
713   jane_rope = janePackage {
714     pname = "jane_rope";
715     hash = "sha256-MpjbwV+VS3qRuW8kxhjGzsITEdrPeWyr0V+LiKR6U8U=";
716     meta.description = "String representation with cheap concatenation";
717     propagatedBuildInputs = [
718       base
719       ppx_jane
720     ];
721   };
723   jane-street-headers = janePackage {
724     pname = "jane-street-headers";
725     hash = "sha256-vS6tPg8LJolte/zI5KHFYCtNuZjn//cmd94Wls3bLCU=";
726     meta.description = "Jane Street C header files";
727   };
729   js_of_ocaml_patches = janePackage {
730     pname = "js_of_ocaml_patches";
731     hash = "sha256-Uj+X/0XUP5Za8NKfHGo9OZnqzKCiuurYJyluD6b0wOQ=";
732     meta.description = "Additions to js_of_ocaml's standard library that are required by Jane Street libraries";
733     propagatedBuildInputs = [
734       js_of_ocaml
735       js_of_ocaml-ppx
736     ];
737   };
739   jsonaf = janePackage {
740     pname = "jsonaf";
741     hash = "sha256-Gn54NUg4YOyrXY5kXCZhHFz24CfUT9c55cJ2sOsNVw8=";
742     meta.description = "A library for parsing, manipulating, and serializing data structured as JSON";
743     propagatedBuildInputs = [
744       base
745       ppx_jane
746       angstrom
747       faraday
748     ];
749   };
751   jst-config = janePackage {
752     pname = "jst-config";
753     hash = "sha256-GviY+zYza7UNYOlAnfAz0aH4LH2B5xA+7iELLuZLgQQ=";
754     meta.description = "Compile-time configuration for Jane Street libraries";
755     buildInputs = [
756       dune-configurator
757       ppx_assert
758       stdio
759     ];
760   };
762   krb = janePackage {
763     pname = "krb";
764     hash = "sha256-+XwYKwpl668fZ23YEbL1wW9PlaIIjbP/hHwNanf3dAY=";
765     meta.description = "A library for using Kerberos for both Rpc and Tcp communication";
766     propagatedBuildInputs = [
767       async
768       base
769       core
770       env_config
771       hex_encode
772       ppx_jane
773       protocol_version_header
774       username_kernel
775       dune-configurator
776       krb5
777     ];
778   };
780   lru_cache = janePackage {
781     pname = "lru_cache";
782     hash = "sha256-FqOBC4kBL9IuFIL4JrVU7iF1AUu+1R/CchR52eyEsa8=";
783     meta.description = "An LRU Cache implementation";
784     propagatedBuildInputs = [
785       core_kernel
786       ppx_jane
787     ];
788   };
790   man_in_the_middle_debugger = janePackage {
791     pname = "man_in_the_middle_debugger";
792     hash = "sha256-b2A/ITf9gx3thSdEY2n7jxKrMOVDpzx4JkSMB3aTyE4=";
793     meta.description = "Man-in-the-middle debugging library";
794     propagatedBuildInputs = [
795       async
796       core
797       ppx_jane
798       angstrom
799       angstrom-async
800     ];
801   };
803   n_ary = janePackage {
804     pname = "n_ary";
805     hash = "sha256-ofstQs5R25NTP4EtBIzDE/Mzg9ZzAJKfAF838uu0zuE=";
806     meta.description = "A library for N-ary datatypes and operations";
807     propagatedBuildInputs = [
808       base
809       expect_test_helpers_core
810       ppx_compare
811       ppx_enumerate
812       ppx_hash
813       ppx_jane
814       ppx_sexp_conv
815       ppx_sexp_message
816     ];
817   };
819   numeric_string = janePackage {
820     pname = "numeric_string";
821     hash = "sha256-MzRPXMR4Pi07mfJQgOV6R1Z22y2tvQTCq22+00aY1ik=";
822     meta.description = "A comparison function for strings that sorts numeric fragments of strings according to their numeric value";
823     propagatedBuildInputs = [
824       base
825       ppx_jane
826     ];
827   };
829   ocaml-compiler-libs = janePackage (
830     {
831       pname = "ocaml-compiler-libs";
832       minimalOCamlVersion = "4.04.1";
833       meta.description = "OCaml compiler libraries repackaged";
834     }
835     // (
836       if lib.versionAtLeast ocaml.version "5.2" then
837         {
838           version = "0.17.0";
839           hash = "sha256-QaC6BWrpFblra6X1+TrlK+J3vZxLvLJZ2b0427DiQzM=";
840         }
841       else
842         {
843           version = "0.12.4";
844           hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
845         }
846     )
847   );
849   ocaml-embed-file = janePackage {
850     pname = "ocaml-embed-file";
851     hash = "sha256-rs+68VATumUgZQ9QrG+By5yNc8cy7avL0BDeqwix0co=";
852     propagatedBuildInputs = [
853       async
854       ppx_jane
855     ];
856     meta.description = "Files contents as module constants";
857   };
859   ocaml_intrinsics = janePackage {
860     pname = "ocaml_intrinsics";
861     hash = "sha256-fbFXTakzxQEeCONSXRXh8FX3HD6h49LZHVsH62Zu3PA=";
862     meta.description = "Intrinsics";
863     buildInputs = [ dune-configurator ];
864     doCheck = false; # test rules broken
865   };
867   of_json = janePackage {
868     pname = "of_json";
869     hash = "sha256-qh9mX03Fk9Jb8yox7mZ/CGbWecszK15oaygKbJVDqa0=";
870     meta.description = "A friendly applicative interface for Jsonaf";
871     buildInputs = [
872       core
873       core_extended
874       jsonaf
875       ppx_jane
876     ];
877   };
879   ordinal_abbreviation = janePackage {
880     pname = "ordinal_abbreviation";
881     hash = "sha256-bGlzFcM6Yw8fcuovrv11WNtAB4mVYv4BjuMlkhsHomQ=";
882     meta.description = "A minimal library for generating ordinal names of integers";
883     buildInputs = [
884       base
885       ppx_jane
886     ];
887   };
889   parsexp = janePackage {
890     pname = "parsexp";
891     hash = "sha256-oc2ASDtUyRBB68tjAoblryAcXF+u3XP1mkQPO5hNbKo=";
892     meta.description = "S-expression parsing library";
893     propagatedBuildInputs = [
894       base
895       sexplib0
896     ];
897   };
899   patdiff = janePackage {
900     pname = "patdiff";
901     hash = "sha256-iVRYKgVBBJws3ZlUwnZt52bIydMtzV7a2R5mjksQAps=";
903     # Used by patdiff-git-wrapper.  Providing it here also causes the shebang
904     # line to be automatically patched.
905     buildInputs = [ bash ];
906     propagatedBuildInputs = [
907       core_unix
908       patience_diff
909       ocaml_pcre
910     ];
911     meta = {
912       description = "File Diff using the Patience Diff algorithm";
913     };
914   };
916   patience_diff = janePackage {
917     pname = "patience_diff";
918     hash = "sha256-JZd99bwLUNhFHng55d77yXSw9u50ahugepesXVdUl04=";
919     meta.description = "Diff library using Bram Cohen's patience diff algorithm";
920     propagatedBuildInputs = [ core_kernel ];
921   };
923   polling_state_rpc = janePackage {
924     pname = "polling_state_rpc";
925     hash = "sha256-l7SMFI+U2rde2OSUNOXPb9NBsvjPrBcxStNooxMgVB8=";
926     meta.description = "An RPC which tracks state on the client and server so it only needs to send diffs across the wire";
927     propagatedBuildInputs = [
928       async_kernel
929       async_rpc_kernel
930       core
931       core_kernel
932       diffable
933       ppx_jane
934     ];
935   };
937   posixat = janePackage {
938     pname = "posixat";
939     hash = "sha256-Nhp5jiK/TTwQXY5Bm4TTeH+xDTdXtvkSq5CS/Sr1UgA=";
940     propagatedBuildInputs = [
941       ppx_optcomp
942       ppx_sexp_conv
943     ];
944     meta.description = "Binding to the posix *at functions";
945   };
947   ppx_accessor = janePackage {
948     version = "0.16.1";
949     pname = "ppx_accessor";
950     hash = "sha256-o70q8eSbPeuGkIcCnKoK0BpaqPhy/NS7x2YYR6wfki8=";
951     meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
952     propagatedBuildInputs = [ accessor ];
953   };
955   ppx_assert = janePackage {
956     pname = "ppx_assert";
957     hash = "sha256-LrpKE0BlFC3QseSXf5WhI71blshUzhH8yo2nXjAtiB8=";
958     meta.description = "Assert-like extension nodes that raise useful errors on failure";
959     propagatedBuildInputs = [
960       ppx_cold
961       ppx_compare
962       ppx_here
963       ppx_sexp_conv
964     ];
965   };
967   ppx_base = janePackage {
968     pname = "ppx_base";
969     hash = "sha256-Ak+7+33qEGYwZWbES032SdkFOsae0+tWtR/DV+xrB10=";
970     meta.description = "Base set of ppx rewriters";
971     propagatedBuildInputs = [
972       ppx_cold
973       ppx_enumerate
974       ppx_globalize
975       ppx_hash
976     ];
977   };
979   ppx_bench = janePackage {
980     pname = "ppx_bench";
981     hash = "sha256-NZlzEMruf89NsI4jfQJLSPhjk/PN47hLbJzGEN8GPl8=";
982     meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
983     propagatedBuildInputs = [ ppx_inline_test ];
984   };
986   ppx_bin_prot = janePackage {
987     pname = "ppx_bin_prot";
988     hash = "sha256-ktfa4umCnLd9oY2WWX/5R7vPB/g7DJX8x3nF9fYLNCQ=";
989     meta.description = "Generation of bin_prot readers and writers from types";
990     propagatedBuildInputs = [
991       bin_prot
992       ppx_here
993     ];
994     doCheck = false; # circular dependency with ppx_jane
995   };
997   ppx_cold = janePackage {
998     pname = "ppx_cold";
999     hash = "sha256-boP07qHPbzf4ntLdV18oyID09ZUOfkIn9ZdQ0DvtrUA=";
1000     meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
1001     propagatedBuildInputs = [ ppxlib ];
1002   };
1004   ppx_compare = janePackage {
1005     pname = "ppx_compare";
1006     hash = "sha256-4bZdhyfnzTjH4E303O6GO2jW968ftuXwoE4/x854JOo=";
1007     meta.description = "Generation of comparison functions from types";
1008     propagatedBuildInputs = [
1009       ppxlib
1010       base
1011     ];
1012   };
1014   ppx_conv_func = janePackage {
1015     pname = "ppx_conv_func";
1016     hash = "sha256-HPHSZHdR9ll+7EbWc36shTdRPFYB0lkApidk+XL3clI=";
1017     meta.description = "Part of the Jane Street's PPX rewriters collection";
1018     propagatedBuildInputs = [
1019       ppxlib
1020       base
1021     ];
1022   };
1024   ppx_custom_printf = janePackage {
1025     pname = "ppx_custom_printf";
1026     hash = "sha256-V30ijRgcma/rwysPxNAFnuJIb7XFrfi7mfjJxN+rSak=";
1027     meta.description = "Printf-style format-strings for user-defined string conversion";
1028     propagatedBuildInputs = [ ppx_sexp_conv ];
1029   };
1031   ppx_css = janePackage {
1032     pname = "ppx_css";
1033     hash = "sha256-spT/dJW8YJtG4pOku9r6VVlBAMwGakTrr1euiABeqsU=";
1034     meta.description = "A ppx that takes in css strings and produces a module for accessing the unique names defined within";
1035     propagatedBuildInputs = [
1036       async
1037       async_unix
1038       core_kernel
1039       core_unix
1040       ppxlib
1041       js_of_ocaml
1042       js_of_ocaml-ppx
1043       sedlex
1044       virtual_dom
1045     ];
1046   };
1048   ppx_csv_conv = janePackage {
1049     pname = "ppx_csv_conv";
1050     hash = "sha256-RdPcDPLzoSf45Zeon3f4HcEvlwB6Q6sAINX3LHmjmj8=";
1051     meta.description = "Generate functions to read/write records in csv format";
1052     propagatedBuildInputs = [
1053       csvfields
1054       ppx_conv_func
1055     ];
1056   };
1058   ppx_demo = janePackage {
1059     pname = "ppx_demo";
1060     hash = "sha256-t/jz94YpwmorhWlcuflIZe0l85cESE62L9I7NMASVWM=";
1061     meta.description = "PPX that exposes the source code string of an expression/module structure";
1062     propagatedBuildInputs = [
1063       core
1064       dedent
1065       ppx_jane
1066       ppxlib
1067     ];
1068   };
1070   ppx_derive_at_runtime = janePackage {
1071     pname = "ppx_derive_at_runtime";
1072     hash = "sha256-UESWOkyWTHJlsE6KZkty9P+iHI3oY1rLve3raRAqMbk=";
1073     meta.description = "Define a new ppx deriver by naming a runtime module";
1074     propagatedBuildInputs = [
1075       base
1076       expect_test_helpers_core
1077       ppx_jane
1078       ppxlib
1079     ];
1080   };
1082   ppx_disable_unused_warnings = janePackage {
1083     pname = "ppx_disable_unused_warnings";
1084     hash = "sha256-jVNXmAy/Ti7MZmbdBjFuDwbmIILJB57flmmB6MoyCtY=";
1085     meta.description = "Expands [@disable_unused_warnings] into [@warning \"-20-26-32-33-34-35-36-37-38-39-60-66-67\"]";
1086     propagatedBuildInputs = [ ppxlib ];
1087   };
1089   ppx_enumerate = janePackage {
1090     pname = "ppx_enumerate";
1091     hash = "sha256-v5JPu+qEXoZ1+mu/yTZW2sfCzU0K60/sInG/Ox1D35s=";
1092     meta.description = "Generate a list containing all values of a finite type";
1093     propagatedBuildInputs = [ ppxlib ];
1094   };
1096   ppx_expect = janePackage {
1097     pname = "ppx_expect";
1098     hash = "sha256-H5ybRHufycdyCxKu370+QZAMUPQsHVD+6nD93tzvLn8=";
1099     meta.description = "Cram like framework for OCaml";
1100     propagatedBuildInputs = [
1101       ppx_here
1102       ppx_inline_test
1103       re
1104     ];
1105     doCheck = false; # test build rules broken
1106   };
1108   ppx_fields_conv = janePackage {
1109     pname = "ppx_fields_conv";
1110     hash = "sha256-kl0JZocMWo2KNciCWkT4nIbJZbh56ijZmlZWbxV8Qj0=";
1111     meta.description = "Generation of accessor and iteration functions for ocaml records";
1112     propagatedBuildInputs = [
1113       fieldslib
1114       ppxlib
1115     ];
1116   };
1118   ppx_fixed_literal = janePackage {
1119     pname = "ppx_fixed_literal";
1120     hash = "sha256-vS2KcCO0fVCmiIBkUBgK6qnqdjREj57QCujHERcJTyo=";
1121     meta.description = "Simpler notation for fixed point literals";
1122     propagatedBuildInputs = [ ppxlib ];
1123   };
1125   ppx_globalize = janePackage {
1126     pname = "ppx_globalize";
1127     hash = "sha256-SG7710YPwWmhRVl7wN3ZQz3ZMTw3cpoywVSeVQAI3Zc=";
1128     meta.description = "A ppx rewriter that generates functions to copy local values to the global heap";
1129     propagatedBuildInputs = [
1130       base
1131       ppxlib
1132     ];
1133   };
1135   ppx_hash = janePackage {
1136     pname = "ppx_hash";
1137     hash = "sha256-ZmdW+q7fak8iG42jRQgZ6chmjHHwrDSy9wg7pq/6zwk=";
1138     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
1139     propagatedBuildInputs = [
1140       ppx_compare
1141       ppx_sexp_conv
1142     ];
1143   };
1145   ppx_here = janePackage {
1146     pname = "ppx_here";
1147     hash = "sha256-ULEom0pTusxf2k2hduv+5NVp7pW5doA/e3QGQNJfGoM=";
1148     meta.description = "Expands [%here] into its location";
1149     propagatedBuildInputs = [ ppxlib ];
1150     doCheck = false; # test build rules broken
1151   };
1153   ppx_ignore_instrumentation = janePackage {
1154     pname = "ppx_ignore_instrumentation";
1155     hash = "sha256-rAdxCgAKz0jNR8ppRJO4oAEvgXbcU4J4mpreAyeGe6k=";
1156     meta.description = "Ignore Jane Street specific instrumentation extensions";
1157     propagatedBuildInputs = [ ppxlib ];
1158   };
1160   ppx_inline_test = janePackage {
1161     pname = "ppx_inline_test";
1162     hash = "sha256-Ql0/80KitKvW3xffeCapYREmZvlg+QWCb2JM2T4Rjlc=";
1163     meta.description = "Syntax extension for writing in-line tests in ocaml code";
1164     propagatedBuildInputs = [
1165       ppxlib
1166       time_now
1167     ];
1168     doCheck = false; # test build rules broken
1169   };
1171   ppx_jane = janePackage {
1172     pname = "ppx_jane";
1173     hash = "sha256-v+/wdEGaXdMWDBa0eJO0uR18G/pDwHjsjaskoEuLusA=";
1174     meta.description = "Standard Jane Street ppx rewriters";
1175     propagatedBuildInputs = [
1176       base_quickcheck
1177       ppx_bin_prot
1178       ppx_disable_unused_warnings
1179       ppx_expect
1180       ppx_fixed_literal
1181       ppx_ignore_instrumentation
1182       ppx_log
1183       ppx_module_timer
1184       ppx_optcomp
1185       ppx_optional
1186       ppx_pipebang
1187       ppx_stable
1188       ppx_string
1189       ppx_tydi
1190       ppx_typerep_conv
1191       ppx_variants_conv
1192     ];
1193   };
1195   ppx_jsonaf_conv = janePackage {
1196     pname = "ppx_jsonaf_conv";
1197     hash = "sha256-GWDhSLtr2+VG3XFIbHgWUcLJFniC7/z90ndiE919CBo=";
1198     meta.description = "[@@deriving] plugin to generate Jsonaf conversion functions";
1199     propagatedBuildInputs = [
1200       base
1201       jsonaf
1202       ppx_jane
1203       ppxlib
1204     ];
1205   };
1207   ppx_js_style = janePackage {
1208     pname = "ppx_js_style";
1209     hash = "sha256-q5CLyeu+5qjegLrJkQVMnId3HMvZ8j3c0PqEa2vTBtU=";
1210     meta.description = "Code style checker for Jane Street Packages";
1211     propagatedBuildInputs = [
1212       octavius
1213       ppxlib
1214     ];
1215   };
1217   ppx_let = janePackage {
1218     pname = "ppx_let";
1219     hash = "sha256-/kEkYXFZ5OyTM4i/WWViaxKvigpoKKoiWtUWuEMkgBE=";
1220     meta.description = "Monadic let-bindings";
1221     propagatedBuildInputs = [
1222       ppxlib
1223       ppx_here
1224     ];
1225   };
1227   ppx_log = janePackage {
1228     pname = "ppx_log";
1229     hash = "sha256-/HwoxBWKuVqTDYe4u0cYNGqg2Lj0h49U2VrFa4cpE2g=";
1230     meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
1231     propagatedBuildInputs = [
1232       base
1233       ppx_here
1234       ppx_sexp_conv
1235       ppx_sexp_message
1236       sexplib
1237     ];
1238   };
1240   ppx_module_timer = janePackage {
1241     pname = "ppx_module_timer";
1242     hash = "sha256-AfG+ZnacrR6p7MOvtktVKVLrMBpNMkX9b2+eqNZNRF4=";
1243     meta.description = "Ppx rewriter that records top-level module startup times";
1244     propagatedBuildInputs = [ time_now ];
1245   };
1247   ppx_optcomp = janePackage {
1248     pname = "ppx_optcomp";
1249     hash = "sha256-TONxBQq/b0kc89f3+jItHd9SnerNx8xa2AjO7HOW+xQ=";
1250     meta.description = "Optional compilation for OCaml";
1251     propagatedBuildInputs = [ ppxlib ];
1252   };
1254   ppx_optional = janePackage {
1255     pname = "ppx_optional";
1256     hash = "sha256-1GpKEEH1Ul+W0k4/8Mra/qYlyFpeMfZ3xrmB3X7uve0=";
1257     meta.description = "Pattern matching on flat options";
1258     propagatedBuildInputs = [ ppxlib ];
1259   };
1261   ppx_pattern_bind = janePackage {
1262     pname = "ppx_pattern_bind";
1263     hash = "sha256-ShR8N71a7sz5XaKDyybsy+K0Uu7sYMgvpMADVxmrI/g=";
1264     meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
1265     propagatedBuildInputs = [ ppx_let ];
1266   };
1268   ppx_pipebang = janePackage {
1269     pname = "ppx_pipebang";
1270     hash = "sha256-gSS+vfsYw3FFOFZ8/iRnP3rxokKAU7EPa1wXq7SbJBk=";
1271     meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
1272     propagatedBuildInputs = [ ppxlib ];
1273   };
1275   ppx_python = janePackage {
1276     pname = "ppx_python";
1277     hash = "sha256-lpc6F+Scc5ECdOXPWowKSWRnFSzKbmE8oHs7zCjq3j8=";
1278     meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
1279     propagatedBuildInputs = [
1280       ppx_base
1281       ppxlib
1282       pyml
1283     ];
1284   };
1286   ppx_sexp_conv = janePackage {
1287     pname = "ppx_sexp_conv";
1288     hash = "sha256-eCQfYAxZZmfNTbPrFW0sqrj63kIdIQ1MAlImCaMop68=";
1289     meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
1290     propagatedBuildInputs = [
1291       ppxlib
1292       sexplib0
1293       base
1294     ];
1295   };
1297   ppx_sexp_message = janePackage {
1298     pname = "ppx_sexp_message";
1299     hash = "sha256-4g3Fjrjqhw+XNkCyxrXkgZDEa3e+ytPsEtQA2xSv+jA=";
1300     meta.description = "A ppx rewriter for easy construction of s-expressions";
1301     propagatedBuildInputs = [
1302       ppx_here
1303       ppx_sexp_conv
1304     ];
1305   };
1307   ppx_sexp_value = janePackage {
1308     pname = "ppx_sexp_value";
1309     hash = "sha256-LsP+deeFYxB38xXw7LLB3gOMGZiUOFRYklGVY7DMmvE=";
1310     meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
1311     propagatedBuildInputs = [
1312       ppx_here
1313       ppx_sexp_conv
1314     ];
1315   };
1317   ppx_stable = janePackage {
1318     pname = "ppx_stable";
1319     hash = "sha256-DFCBJY+Q8LjXSF9vHwPpUJLNyMoAXdDwQZrvhl+9g0U=";
1320     meta.description = "Stable types conversions generator";
1321     propagatedBuildInputs = [ ppxlib ];
1322   };
1324   ppx_stable_witness = janePackage {
1325     pname = "ppx_stable_witness";
1326     hash = "sha256-W1CN4xspM8NJiXfi7OsngfzWnLEUmBs+IRLwHfxX9d4=";
1327     meta.description = "Ppx extension for deriving a witness that a type is intended to be stable";
1328     propagatedBuildInputs = [
1329       base
1330       ppxlib
1331     ];
1332   };
1334   ppx_string = janePackage {
1335     pname = "ppx_string";
1336     hash = "sha256-GQlgiaES8wc6Y7rTgmPrf9UfMfu125VoNGEbdc7kFsk=";
1337     meta.description = "Ppx extension for string interpolation";
1338     propagatedBuildInputs = [
1339       ppx_base
1340       ppxlib
1341       stdio
1342     ];
1343   };
1345   ppx_tydi = janePackage {
1346     pname = "ppx_tydi";
1347     hash = "sha256-neu2Z7TgQdBzf8UtYDRhnGp3Iggfd90Fr+gQuwVTMOo=";
1348     meta.description = "Let expressions, inferring pattern type from expression";
1349     propagatedBuildInputs = [
1350       base
1351       ppxlib
1352     ];
1353   };
1355   ppx_typed_fields = janePackage {
1356     pname = "ppx_typed_fields";
1357     hash = "sha256-l4lCQ4n5FLPS82sb3FgW+HF2OEY/kY10sNfr+aQF8x8=";
1358     meta.description = "GADT-based field accessors and utilities";
1359     propagatedBuildInputs = [
1360       core
1361       ppx_jane
1362       ppxlib
1363     ];
1364   };
1366   ppx_typerep_conv = janePackage {
1367     pname = "ppx_typerep_conv";
1368     hash = "sha256-DxjgwZee0jOea7qyPfEhRrdcKWQb2jtjrowiJszS+Fs=";
1369     meta.description = "Generation of runtime types from type declarations";
1370     propagatedBuildInputs = [
1371       ppxlib
1372       typerep
1373     ];
1374   };
1376   ppx_variants_conv = janePackage {
1377     pname = "ppx_variants_conv";
1378     hash = "sha256-Q/CCcMrD+XN5YRMzKvXuiQHfcwXwI773s8x150/eMzs=";
1379     meta.description = "Generation of accessor and iteration functions for ocaml variant types";
1380     propagatedBuildInputs = [
1381       variantslib
1382       ppxlib
1383     ];
1384   };
1386   pythonlib = janePackage {
1387     pname = "pythonlib";
1388     version = "0.16";
1389     hash = "sha256-HrsdtwPSDSaMB9CDIR9P5iaAmLihUrReuNAPIYa+s3Y=";
1390     meta.description = "A library to help writing wrappers around ocaml code for python";
1391     propagatedBuildInputs = [
1392       base
1393       core
1394       expect_test_helpers_core
1395       ppx_compare
1396       ppx_expect
1397       ppx_here
1398       ppx_let
1399       ppx_python
1400       ppx_string
1401       stdio
1402       typerep
1403       pyml
1404     ];
1405     meta.broken = lib.versionAtLeast ocaml.version "4.14";
1406   };
1408   profunctor = janePackage {
1409     pname = "profunctor";
1410     hash = "sha256-CFHMtCuBnrlr+B2cdJm2Tamt0A/e+f3SnjEavvE31xQ=";
1411     meta.description = "A library providing a signature for simple profunctors and traversal of a record";
1412     propagatedBuildInputs = [
1413       base
1414       ppx_jane
1415       record_builder
1416     ];
1417   };
1419   protocol_version_header = janePackage {
1420     pname = "protocol_version_header";
1421     hash = "sha256-GVjnwne6ksjY9ptLOpbsgG0La6eiCJf1w4teYEtgJrA=";
1422     meta.description = "Protocol versioning";
1423     propagatedBuildInputs = [ core_kernel ];
1424   };
1426   re2 = janePackage {
1427     pname = "re2";
1428     hash = "sha256-ZRJ7ooXtatEEh0sPL8M9OZ+6s7xNdTuw0Ot6txiG16I=";
1429     meta.description = "OCaml bindings for RE2, Google's regular expression library";
1430     propagatedBuildInputs = [
1431       core_kernel
1432       jane_rope
1433       regex_parser_intf
1434     ];
1435     prePatch = ''
1436       substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
1437       substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
1438     '';
1439   };
1441   re2_stable = janePackage {
1442     pname = "re2_stable";
1443     version = "0.14.0";
1444     hash = "sha256-gyet2Pzn7ZIqQ+UP2J51pRmwaESY2LSGTqCMZZwDTE4=";
1445     meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
1446     propagatedBuildInputs = [
1447       core
1448       re2
1449     ];
1450   };
1452   record_builder = janePackage {
1453     pname = "record_builder";
1454     hash = "sha256-46zGgN9RlDjoSbi8RimuQVrMhy65Gpic0YPZpHOeoo0=";
1455     meta.description = "A library which provides traversal of records with an applicative";
1456     propagatedBuildInputs = [
1457       base
1458       ppx_jane
1459     ];
1460   };
1462   redis-async = janePackage {
1463     pname = "redis-async";
1464     hash = "sha256-5msIS2m8nkaprR8NEBfKFWZBWaDJiUtjHbfPelg9/os=";
1465     meta.description = "Redis client for Async applications";
1466     propagatedBuildInputs = [
1467       async
1468       bignum
1469       core
1470       core_kernel
1471       ppx_jane
1472     ];
1473   };
1475   regex_parser_intf = janePackage {
1476     pname = "regex_parser_intf";
1477     hash = "sha256-huzHtUIIVRd5pE7VU1oUjN20S55L6+WCvoLlQ0FCD7A=";
1478     meta.description = "Interface shared by Re_parser and Re2.Parser";
1479     propagatedBuildInputs = [ base ];
1480   };
1482   resource_cache = janePackage {
1483     pname = "resource_cache";
1484     hash = "sha256-dN4skSHswgRYLZqN/tqhFFTfgoN8H/LgTgoe+5ZI5zE=";
1485     meta.description = "General resource cache";
1486     propagatedBuildInputs = [ async_rpc_kernel ];
1487   };
1489   semantic_version = janePackage {
1490     pname = "semantic_version";
1491     hash = "sha256-KJanaDUW56ndvnTlnPeQgh0C7zsRqXJ328gcEiVDrmc=";
1492     meta.description = "Semantic versioning";
1493     propagatedBuildInputs = [
1494       core
1495       ppx_jane
1496       re
1497     ];
1498   };
1500   sexp = janePackage {
1501     pname = "sexp";
1502     hash = "sha256-JWRYi5lX9UOKg+RGvW6FO61t2HlnJKXhzctOHXe0bCM=";
1503     propagatedBuildInputs = [
1504       async
1505       core
1506       csvfields
1507       jsonaf
1508       re2
1509       sexp_diff
1510       sexp_macro
1511       sexp_pretty
1512       sexp_select
1513       shell
1514     ];
1515     meta.description = "S-expression swiss knife";
1516   };
1518   sexp_grammar = janePackage {
1519     pname = "sexp_grammar";
1520     hash = "sha256-Y/abRingL4+3qvaKgW9jH46E9uq7jYE2+kgr8ERKqfI=";
1521     propagatedBuildInputs = [
1522       core
1523       ppx_bin_prot
1524       ppx_compare
1525       ppx_hash
1526       ppx_let
1527       ppx_sexp_conv
1528       ppx_sexp_message
1529       zarith
1530     ];
1531     meta.description = "Helpers for manipulating [Sexplib.Sexp_grammar] values";
1532   };
1534   sexp_diff = janePackage {
1535     pname = "sexp_diff";
1536     hash = "sha256-2dMBKf7eUbKZtvV7Ol2mPMzYJOCDHuOm9xFZ8vkmp/0=";
1537     propagatedBuildInputs = [ core_kernel ];
1538     meta.description = "Code for computing the diff of two sexps";
1539   };
1541   sexp_macro = janePackage {
1542     pname = "sexp_macro";
1543     hash = "sha256-x9WsFFrV7wUqgPUw8KkfyzOxLrS5h5++OSK8QljeQqg=";
1544     propagatedBuildInputs = [
1545       async
1546       sexplib
1547     ];
1548     meta.description = "Sexp macros";
1549   };
1551   sexp_pretty = janePackage {
1552     pname = "sexp_pretty";
1553     hash = "sha256-tcWdYZ717LkGowRSRoEcUNY7VCMX64uhCaY3bXhWxKM=";
1554     meta.description = "S-expression pretty-printer";
1555     propagatedBuildInputs = [
1556       ppx_base
1557       re
1558       sexplib
1559     ];
1560   };
1562   sexp_select = janePackage {
1563     pname = "sexp_select";
1564     hash = "sha256-HEzZowojeK9yDOoTY/l01fYLUdolzQGlMO9u3phV8so=";
1565     propagatedBuildInputs = [
1566       base
1567       ppx_jane
1568     ];
1569     meta.description = "A library to use CSS-style selectors to traverse sexp trees";
1570   };
1572   sexplib0 = janePackage {
1573     pname = "sexplib0";
1574     hash = "sha256-wRr1M243Bqu/XLSsr5IVPH5RTVWeVgZjxkKOrm+PW5E=";
1575     minimalOCamlVersion = "4.08.0";
1576     meta.description = "Library containing the definition of S-expressions and some base converters";
1577   };
1579   sexplib = janePackage {
1580     pname = "sexplib";
1581     hash = "sha256-6MwggpjHo4FmKF88fP56LN9OHi2uIJc13TvKx4T7gEI=";
1582     meta.description = "Library for serializing OCaml values to and from S-expressions";
1583     propagatedBuildInputs = [
1584       num
1585       parsexp
1586     ];
1587   };
1589   shell = janePackage {
1590     pname = "shell";
1591     hash = "sha256-pK434+ToeYURQHRV+gK57rC7BFvznWEvIu5NAib2ZTU=";
1592     meta.description = "Yet another implementation of fork&exec and related functionality";
1593     buildInputs = [ jst-config ];
1594     propagatedBuildInputs = [ textutils ];
1595     checkInputs = [ ounit ];
1596   };
1598   shexp = janePackage {
1599     pname = "shexp";
1600     hash = "sha256-npIcrxMOcIgsecdUEx5XHYp0KVrXiMzMLi8jskAp4vo=";
1601     propagatedBuildInputs = [
1602       posixat
1603       spawn
1604     ];
1605     meta.description = "Process library and s-expression based shell";
1606   };
1608   spawn = janePackage {
1609     pname = "spawn";
1610     minimalOCamlVersion = "4.02.3";
1611     version = "0.15.0";
1612     hash = "1fjr91psas5zmk1hxvxh0dchhn0pkyzlr4gg232f5g9vdgissi0p";
1613     meta.description = "Spawning sub-processes";
1614     buildInputs = [ ppx_expect ];
1615   };
1617   splay_tree = janePackage {
1618     pname = "splay_tree";
1619     hash = "sha256-Ag6yqTofEZ3v0qF+Z7xpXQOh7+HWtvRLlY+iAYqcReg=";
1620     meta.description = "A splay tree implementation";
1621     propagatedBuildInputs = [ core_kernel ];
1622   };
1624   splittable_random = janePackage {
1625     pname = "splittable_random";
1626     hash = "sha256-wMmLuzhKmnS2iTYVTPUx5Rv2LhL/ygmWmb9t2pUjz+E=";
1627     meta.description = "PRNG that can be split into independent streams";
1628     propagatedBuildInputs = [
1629       base
1630       ppx_assert
1631       ppx_bench
1632       ppx_sexp_message
1633     ];
1634   };
1636   stdio = janePackage {
1637     pname = "stdio";
1638     hash = "sha256-+QgxqSMqO4VGoMWWJ3QoXdtJKcVpxlSQ/OI7dmcNqjw=";
1639     meta.description = "Standard IO library for OCaml";
1640     propagatedBuildInputs = [ base ];
1641   };
1643   stored_reversed = janePackage {
1644     pname = "stored_reversed";
1645     hash = "sha256-ef11f0qifEvxKChM49Hnfk6J6hL+b0tMlm0iDLd5Y0Q=";
1646     meta.description = "A library for representing a list temporarily stored in reverse order";
1647     propagatedBuildInputs = [
1648       core
1649       ppx_jane
1650     ];
1651   };
1653   streamable = janePackage {
1654     version = "0.16.1";
1655     pname = "streamable";
1656     hash = "sha256-3djrUW2tPKaEmoOIpdjN6ok7U9i07yreqbi1kP+6pnY=";
1657     meta.description = "A collection of types suitable for incremental serialization";
1658     propagatedBuildInputs = [
1659       async_kernel
1660       async_rpc_kernel
1661       base
1662       core
1663       core_kernel
1664       ppx_jane
1665       ppxlib
1666     ];
1667   };
1669   textutils = janePackage {
1670     pname = "textutils";
1671     hash = "sha256-2qy99MUMpkuNCvCYlk36k4kN6cPjrEILbwEUv4DyNYw=";
1672     meta.description = "Text output utilities";
1673     propagatedBuildInputs = [
1674       core_unix
1675       textutils_kernel
1676     ];
1677   };
1679   textutils_kernel = janePackage {
1680     pname = "textutils_kernel";
1681     hash = "sha256-DiXemANj5ONmvMzp+tly3AJud5u9i7HdaHmn8aVQS48=";
1682     meta.description = "Text output utilities";
1683     propagatedBuildInputs = [
1684       core
1685       ppx_jane
1686       uutf
1687     ];
1688   };
1690   tilde_f = janePackage {
1691     pname = "tilde_f";
1692     hash = "sha256-qLjM9liJfMIh2fqRPBdnmtUf4xhzk2MY8dFNdON3Aew=";
1693     meta.description = "Provides a let-syntax for continuation-passing style";
1694     propagatedBuildInputs = [
1695       base
1696       ppx_jane
1697     ];
1698   };
1700   time_now = janePackage {
1701     pname = "time_now";
1702     hash = "sha256-DjSrx/HgwCYS0Xzm2gFvWUVLD7a1KuFVIyVrJjBi8Tc=";
1703     meta.description = "Reports the current time";
1704     buildInputs = [
1705       jst-config
1706       ppx_optcomp
1707     ];
1708     propagatedBuildInputs = [
1709       jane-street-headers
1710       base
1711       ppx_base
1712     ];
1713   };
1715   timezone = janePackage {
1716     pname = "timezone";
1717     hash = "sha256-pmXUMvLfgAwP6TV/aP9wMlOs0KfwEWtaJfdjUFLbOu0=";
1718     meta.description = "Time-zone handling";
1719     propagatedBuildInputs = [ core_kernel ];
1720   };
1722   topological_sort = janePackage {
1723     pname = "topological_sort";
1724     hash = "sha256-um5++60mR++iHAruKqoQfd4EbQ1kb3L+cPOWhs9sIHI=";
1725     meta.description = "Topological sort algorithm";
1726     propagatedBuildInputs = [
1727       ppx_jane
1728       stdio
1729     ];
1730   };
1732   typerep = janePackage {
1733     pname = "typerep";
1734     hash = "sha256-iJnIjWZYCTaH29x7nFviCrbnTmHRChZkkj6E5sgi4mU=";
1735     meta.description = "Typerep is a library for runtime types";
1736     propagatedBuildInputs = [ base ];
1737   };
1739   username_kernel = janePackage {
1740     pname = "username_kernel";
1741     hash = "sha256-UvFL/M9OsD+SOs9MYMKiKzZilLJHzriop6SPA4bOhZQ=";
1742     meta.description = "An identifier for a user";
1743     propagatedBuildInputs = [
1744       core
1745       ppx_jane
1746     ];
1747   };
1749   variantslib = janePackage {
1750     pname = "variantslib";
1751     hash = "sha256-8NoNkyIP7iEEiei+Q1zrPoJjnWwhCsLsY1vgua22gnw=";
1752     meta.description = "Part of Jane Street's Core library";
1753     propagatedBuildInputs = [ base ];
1754   };
1756   vcaml = janePackage {
1757     pname = "vcaml";
1758     hash = "sha256-pmEKi24+22T76SzI3RpBmQF7ZrQwlngrpFYLoBdLwe0=";
1759     meta.description = "OCaml bindings for the Neovim API";
1760     propagatedBuildInputs = [
1761       angstrom-async
1762       async_extra
1763       expect_test_helpers_async
1764       faraday
1765       jsonaf
1766       man_in_the_middle_debugger
1767       semantic_version
1768     ];
1769     patches = [ ./vcaml.patch ];
1770   };
1772   virtual_dom = janePackage {
1773     pname = "virtual_dom";
1774     hash = "sha256-nXW9cDHQVugriR0+GkayuV4S3HKothQAoNJef02iALM=";
1775     meta.description = "OCaml bindings for the virtual-dom library";
1776     buildInputs = [ js_of_ocaml-ppx ];
1777     propagatedBuildInputs = [
1778       base64
1779       core_kernel
1780       gen_js_api
1781       js_of_ocaml
1782       js_of_ocaml_patches
1783       lambdasoup
1784       tyxml
1785       uri
1786     ];
1787   };
1789   zarith_stubs_js = janePackage {
1790     pname = "zarith_stubs_js";
1791     hash = "sha256-oKD+JE08Mgvk5l8XFHSZ7xqiWPaOvKC87+zHLaQ/7q0=";
1792     meta.description = "Javascripts stubs for the Zarith library";
1793   };
1795   zstandard = janePackage {
1796     pname = "zstandard";
1797     hash = "sha256-QcYqlOpCAr0owmO6sLDJhki8lUnNvtkaxldKb5I5AF0=";
1798     meta.description = "OCaml bindings to Zstandard";
1799     buildInputs = [ ppx_jane ];
1800     propagatedBuildInputs = [
1801       core_kernel
1802       ctypes
1803       zstd
1804     ];
1805   };