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 = [
26 accessor = janePackage {
28 hash = "sha256-yClfUXqwVoipF4WqbqC6VBVYc6t8MZYVoHGjchH7XQA=";
29 meta.description = "A library that makes it nicer to work with nested functional data structures";
30 propagatedBuildInputs = [ higher_kinded ];
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 = [
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 ];
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 = [
62 hash = "sha256-TpsC9sn8noiNI0aYbMalUUv3xlC2LMERsv6Gr928Vzc=";
63 meta.description = "Monadic concurrency library";
64 propagatedBuildInputs = [
69 doCheck = false; # we don't have netkit_sockets
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 = [
85 async_extra = janePackage {
86 pname = "async_extra";
87 hash = "sha256-Y+gTlJuKmwvEEPuMPu7v0iYeNQtlzP8QiS0PSgoYrrI=";
88 meta.description = "Monadic concurrency library";
89 propagatedBuildInputs = [ async_kernel ];
92 async_find = janePackage {
94 hash = "sha256-PG6BJx9tfP+zcDaG+7WdHiv4jUqsUH2TvHV6UXdzPAg=";
95 meta.description = "Directory traversal with Async";
96 propagatedBuildInputs = [ async ];
99 async_inotify = janePackage {
100 pname = "async_inotify";
101 hash = "sha256-seFbs06w3T+B49sw3nOjpXpoJbJ+IJ3qN5LnufrsE48=";
102 meta.description = "Async wrapper for inotify";
103 propagatedBuildInputs = [
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 ];
116 async_js = janePackage {
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 = [
128 async_kernel = janePackage {
129 pname = "async_kernel";
130 hash = "sha256-EDgdZc6GRyiiFtnElNE9jGPEjPIUniP9uB/JoySkZz8=";
131 meta.description = "Monadic concurrency library";
132 propagatedBuildInputs = [ core_kernel ];
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 = [
141 protocol_version_header
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 = [
152 cohttp_async_websocket
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 ];
163 async_shell = janePackage {
164 pname = "async_shell";
165 hash = "sha256-DjIbadCjPymnkDsnonmxKumCWf5P9XO3ZaAwOaYRnbk=";
166 meta.description = "Shell helpers for Async";
167 propagatedBuildInputs = [
173 async_smtp = janePackage {
174 pname = "async_smtp";
175 hash = "sha256-X0eegZMMU9EnC9Oi+6DjtwNmyzQYr3EKi1duNzEAfkk=";
176 meta.description = "SMTP client and server";
177 propagatedBuildInputs = [
190 async_ssl = janePackage {
193 hash = "sha256-83YKxvVb/JwBnQG4R/R1Ztik9T/hO4cbiNTfFnErpG4=";
194 meta.description = "Async wrappers for SSL";
195 buildInputs = [ dune-configurator ];
196 propagatedBuildInputs = [
204 async_unix = janePackage {
205 pname = "async_unix";
206 hash = "sha256-dT+yJC73sxS4NPR/GC/FyVLbWtYpM9DqKykVk8PEEWU=";
207 meta.description = "Monadic concurrency library";
208 propagatedBuildInputs = [
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 = [
224 babel = janePackage {
226 hash = "sha256-nnMliU0d6vtHTYEy9uMi8nMaHvAsEXKN6uNByqZ28+c=";
227 meta.description = "A library for defining Rpcs that can evolve over time without breaking backward compatibility";
228 propagatedBuildInputs = [
240 hash = "sha256-8OvZe+aiWipJ6busBufx3OqERmqxBva55UOLjL8KoPc=";
241 meta.description = "Full standard library replacement for OCaml";
242 buildInputs = [ dune-configurator ];
243 propagatedBuildInputs = [ sexplib0 ];
244 checkInputs = [ alcotest ];
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 = [
257 base_trie = janePackage {
259 hash = "sha256-KV/k3B0h/4rE+MY6f4qDnlaObMmewUS+NAN2M7sb+yw=";
260 meta.description = "Trie data structure library";
261 propagatedBuildInputs = [
264 expect_test_helpers_core
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 = [
282 bidirectional_map = janePackage {
283 pname = "bidirectional_map";
284 hash = "sha256-YEzOdzanBJaskI2/xN9E3ozWnBXDyxJvY3g/qEE73yI=";
285 meta.description = "A library for bidirectional maps and multimaps";
288 bignum = janePackage {
290 hash = "sha256-PmvqGImF1Nrr6swx5q3+9mCfSbieC3RvWuz8oCTkSgg=";
291 propagatedBuildInputs = [
296 meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
299 bin_prot = janePackage {
301 hash = "sha256-qFkM6TrTLnnFKmzQHktBb68HpBTMYhiURvnRKEoAevk=";
302 meta.description = "A binary protocol generator";
303 propagatedBuildInputs = [
313 bonsai = janePackage {
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 = [
323 propagatedBuildInputs = [
346 cinaps = janePackage {
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
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 = [
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 ];
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 = [
389 hash = "sha256-cyOU++XJJkU2YMHfn8saFOxLoQSFhF7kARJi/9unbFQ=";
390 meta.description = "Industrial strength alternative to OCaml's standard library";
391 buildInputs = [ jst-config ];
392 propagatedBuildInputs = [
399 doCheck = false; # circular dependency with core_kernel
402 core_bench = janePackage {
403 pname = "core_bench";
404 hash = "sha256-ASdu3ZUk+nkdNX9UbBQxKRdXBa073mWMDRW+Ceu3/t4=";
405 meta.description = "Benchmarking library";
406 propagatedBuildInputs = [ textutils ];
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 = [
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 = [
430 doCheck = false; # we don't have quickcheck_deprecated
433 core_unix = janePackage {
435 hash = "sha256-mePpxjbUumMemHDKhRgACilchgS6QHZEV1ghYtT3flg=";
436 meta.description = "Unix-specific portions of Core";
437 buildInputs = [ jst-config ];
438 propagatedBuildInputs = [
440 expect_test_helpers_core
447 patchShebangs unix_pseudo_terminal/src/discover.sh
451 csvfields = janePackage {
453 hash = "sha256-FEkjRmLeqNvauBlrY2xtLZfxVfnFWU8w8noEArPUieo=";
454 propagatedBuildInputs = [
458 meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
461 dedent = janePackage {
463 hash = "sha256-fzytLr3tVr2vPmykUBzNFMxnyMcIeeo8S9BydsTKnQw=";
464 propagatedBuildInputs = [
469 meta.description = "A library for improving redability of multi-line string constants in code";
472 delimited_parsing = janePackage {
473 pname = "delimited_parsing";
474 hash = "sha256-XyO3hzPz48i1cnMTJvZfarM6HC7qdHqdftp9SnCjPEU=";
475 propagatedBuildInputs = [
479 meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
482 diffable = janePackage {
484 hash = "sha256-ascQUbxzvRR8XrroaupyFZ2YNQMvlXn4PemumYTwRF4=";
485 propagatedBuildInputs = [
491 meta.description = "An interface for diffs";
494 ecaml = janePackage {
496 hash = "sha256-VS7eTTD85ci3mJIXd2pG1Y/ygT9dCIvfzU2HtOufW6U=";
497 meta.description = "Library for writing Emacs plugin in OCaml";
498 propagatedBuildInputs = [
500 expect_test_helpers_core
504 email_message = janePackage {
505 pname = "email_message";
506 hash = "sha256-eso68owbAspjaVgj/wGFQ7VQYlAwyYV3oNitLQWiRPA=";
507 meta.description = "E-mail message parser";
508 propagatedBuildInputs = [
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 = [
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 = [
536 expect_test_helpers_core
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 = [
550 fieldslib = janePackage {
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 ];
557 file_path = janePackage {
559 hash = "sha256-EEpDZNgUgyeqivRhZgQWWlerl+7OOcvAbjjQ3e1NYOQ=";
560 meta.description = "A library for typed manipulation of UNIX-style file paths";
561 propagatedBuildInputs = [
566 expect_test_helpers_async
567 expect_test_helpers_core
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 = [
584 hash = "sha256-IQ2wze34LlOutecDOrPhj3U7MFVJTSjQW+If3QyHoes=";
585 meta.description = "A library for running the fzf command line tool";
586 propagatedBuildInputs = [
592 substituteInPlace src/fzf.ml --replace /usr/bin/fzf ${fzf}/bin/fzf
596 hex_encode = janePackage {
597 pname = "hex_encode";
598 hash = "sha256-jnsf5T1D1++AUdrato/NO3gTVXu14klXozHFIG9HH/o=";
599 meta.description = "Hexadecimal encoding library";
600 propagatedBuildInputs = [
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 = [
617 incr_dom = janePackage {
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 = [
630 incr_map = janePackage {
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 = [
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 ];
651 incremental = janePackage {
652 pname = "incremental";
653 hash = "sha256-PXGY0M2xeVWDLeS3SrqXy1dqsyeKgndGT6NpuiyNQQQ=";
654 meta.description = "Library for incremental computations";
655 propagatedBuildInputs = [
661 indentation_buffer = janePackage {
662 pname = "indentation_buffer";
663 hash = "sha256-5ayWs7yUnuxh5S3Dp0GbYTkGXttDMomfZak4MHePFbk=";
664 meta.description = "A library for building strings with indentation";
665 propagatedBuildInputs = [
671 int_repr = janePackage {
673 hash = "sha256-lghu2U1JwZaR4dkd9PcJEW3pZSPoaFhUluIDwFAYFK0=";
674 meta.description = "Integers of various widths";
675 propagatedBuildInputs = [
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 = [
692 janestreet_csv = janePackage {
693 pname = "janestreet_csv";
694 hash = "sha256-XLyHxVlgBvMIBrG2wzOudbKqy+N12Boheb3K+6o9y1o=";
695 propagatedBuildInputs = [
710 meta.description = "Tools for working with CSVs on the command line";
713 jane_rope = janePackage {
715 hash = "sha256-MpjbwV+VS3qRuW8kxhjGzsITEdrPeWyr0V+LiKR6U8U=";
716 meta.description = "String representation with cheap concatenation";
717 propagatedBuildInputs = [
723 jane-street-headers = janePackage {
724 pname = "jane-street-headers";
725 hash = "sha256-vS6tPg8LJolte/zI5KHFYCtNuZjn//cmd94Wls3bLCU=";
726 meta.description = "Jane Street C header files";
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 = [
739 jsonaf = janePackage {
741 hash = "sha256-Gn54NUg4YOyrXY5kXCZhHFz24CfUT9c55cJ2sOsNVw8=";
742 meta.description = "A library for parsing, manipulating, and serializing data structured as JSON";
743 propagatedBuildInputs = [
751 jst-config = janePackage {
752 pname = "jst-config";
753 hash = "sha256-GviY+zYza7UNYOlAnfAz0aH4LH2B5xA+7iELLuZLgQQ=";
754 meta.description = "Compile-time configuration for Jane Street libraries";
764 hash = "sha256-+XwYKwpl668fZ23YEbL1wW9PlaIIjbP/hHwNanf3dAY=";
765 meta.description = "A library for using Kerberos for both Rpc and Tcp communication";
766 propagatedBuildInputs = [
773 protocol_version_header
780 lru_cache = janePackage {
782 hash = "sha256-FqOBC4kBL9IuFIL4JrVU7iF1AUu+1R/CchR52eyEsa8=";
783 meta.description = "An LRU Cache implementation";
784 propagatedBuildInputs = [
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 = [
803 n_ary = janePackage {
805 hash = "sha256-ofstQs5R25NTP4EtBIzDE/Mzg9ZzAJKfAF838uu0zuE=";
806 meta.description = "A library for N-ary datatypes and operations";
807 propagatedBuildInputs = [
809 expect_test_helpers_core
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 = [
829 ocaml-compiler-libs = janePackage (
831 pname = "ocaml-compiler-libs";
832 minimalOCamlVersion = "4.04.1";
833 meta.description = "OCaml compiler libraries repackaged";
836 if lib.versionAtLeast ocaml.version "5.2" then
839 hash = "sha256-QaC6BWrpFblra6X1+TrlK+J3vZxLvLJZ2b0427DiQzM=";
844 hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
849 ocaml-embed-file = janePackage {
850 pname = "ocaml-embed-file";
851 hash = "sha256-rs+68VATumUgZQ9QrG+By5yNc8cy7avL0BDeqwix0co=";
852 propagatedBuildInputs = [
856 meta.description = "Files contents as module constants";
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
867 of_json = janePackage {
869 hash = "sha256-qh9mX03Fk9Jb8yox7mZ/CGbWecszK15oaygKbJVDqa0=";
870 meta.description = "A friendly applicative interface for Jsonaf";
879 ordinal_abbreviation = janePackage {
880 pname = "ordinal_abbreviation";
881 hash = "sha256-bGlzFcM6Yw8fcuovrv11WNtAB4mVYv4BjuMlkhsHomQ=";
882 meta.description = "A minimal library for generating ordinal names of integers";
889 parsexp = janePackage {
891 hash = "sha256-oc2ASDtUyRBB68tjAoblryAcXF+u3XP1mkQPO5hNbKo=";
892 meta.description = "S-expression parsing library";
893 propagatedBuildInputs = [
899 patdiff = janePackage {
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 = [
912 description = "File Diff using the Patience Diff algorithm";
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 ];
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 = [
937 posixat = janePackage {
939 hash = "sha256-Nhp5jiK/TTwQXY5Bm4TTeH+xDTdXtvkSq5CS/Sr1UgA=";
940 propagatedBuildInputs = [
944 meta.description = "Binding to the posix *at functions";
947 ppx_accessor = janePackage {
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 ];
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 = [
967 ppx_base = janePackage {
969 hash = "sha256-Ak+7+33qEGYwZWbES032SdkFOsae0+tWtR/DV+xrB10=";
970 meta.description = "Base set of ppx rewriters";
971 propagatedBuildInputs = [
979 ppx_bench = janePackage {
981 hash = "sha256-NZlzEMruf89NsI4jfQJLSPhjk/PN47hLbJzGEN8GPl8=";
982 meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
983 propagatedBuildInputs = [ ppx_inline_test ];
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 = [
994 doCheck = false; # circular dependency with ppx_jane
997 ppx_cold = janePackage {
999 hash = "sha256-boP07qHPbzf4ntLdV18oyID09ZUOfkIn9ZdQ0DvtrUA=";
1000 meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
1001 propagatedBuildInputs = [ ppxlib ];
1004 ppx_compare = janePackage {
1005 pname = "ppx_compare";
1006 hash = "sha256-4bZdhyfnzTjH4E303O6GO2jW968ftuXwoE4/x854JOo=";
1007 meta.description = "Generation of comparison functions from types";
1008 propagatedBuildInputs = [
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 = [
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 ];
1031 ppx_css = janePackage {
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 = [
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 = [
1058 ppx_demo = janePackage {
1060 hash = "sha256-t/jz94YpwmorhWlcuflIZe0l85cESE62L9I7NMASVWM=";
1061 meta.description = "PPX that exposes the source code string of an expression/module structure";
1062 propagatedBuildInputs = [
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 = [
1076 expect_test_helpers_core
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 ];
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 ];
1096 ppx_expect = janePackage {
1097 pname = "ppx_expect";
1098 hash = "sha256-H5ybRHufycdyCxKu370+QZAMUPQsHVD+6nD93tzvLn8=";
1099 meta.description = "Cram like framework for OCaml";
1100 propagatedBuildInputs = [
1105 doCheck = false; # test build rules broken
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 = [
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 ];
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 = [
1135 ppx_hash = janePackage {
1137 hash = "sha256-ZmdW+q7fak8iG42jRQgZ6chmjHHwrDSy9wg7pq/6zwk=";
1138 meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
1139 propagatedBuildInputs = [
1145 ppx_here = janePackage {
1147 hash = "sha256-ULEom0pTusxf2k2hduv+5NVp7pW5doA/e3QGQNJfGoM=";
1148 meta.description = "Expands [%here] into its location";
1149 propagatedBuildInputs = [ ppxlib ];
1150 doCheck = false; # test build rules broken
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 ];
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 = [
1168 doCheck = false; # test build rules broken
1171 ppx_jane = janePackage {
1173 hash = "sha256-v+/wdEGaXdMWDBa0eJO0uR18G/pDwHjsjaskoEuLusA=";
1174 meta.description = "Standard Jane Street ppx rewriters";
1175 propagatedBuildInputs = [
1178 ppx_disable_unused_warnings
1181 ppx_ignore_instrumentation
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 = [
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 = [
1217 ppx_let = janePackage {
1219 hash = "sha256-/kEkYXFZ5OyTM4i/WWViaxKvigpoKKoiWtUWuEMkgBE=";
1220 meta.description = "Monadic let-bindings";
1221 propagatedBuildInputs = [
1227 ppx_log = janePackage {
1229 hash = "sha256-/HwoxBWKuVqTDYe4u0cYNGqg2Lj0h49U2VrFa4cpE2g=";
1230 meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
1231 propagatedBuildInputs = [
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 ];
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 ];
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 ];
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 ];
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 ];
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 = [
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 = [
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 = [
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 = [
1317 ppx_stable = janePackage {
1318 pname = "ppx_stable";
1319 hash = "sha256-DFCBJY+Q8LjXSF9vHwPpUJLNyMoAXdDwQZrvhl+9g0U=";
1320 meta.description = "Stable types conversions generator";
1321 propagatedBuildInputs = [ ppxlib ];
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 = [
1334 ppx_string = janePackage {
1335 pname = "ppx_string";
1336 hash = "sha256-GQlgiaES8wc6Y7rTgmPrf9UfMfu125VoNGEbdc7kFsk=";
1337 meta.description = "Ppx extension for string interpolation";
1338 propagatedBuildInputs = [
1345 ppx_tydi = janePackage {
1347 hash = "sha256-neu2Z7TgQdBzf8UtYDRhnGp3Iggfd90Fr+gQuwVTMOo=";
1348 meta.description = "Let expressions, inferring pattern type from expression";
1349 propagatedBuildInputs = [
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 = [
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 = [
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 = [
1386 pythonlib = janePackage {
1387 pname = "pythonlib";
1389 hash = "sha256-HrsdtwPSDSaMB9CDIR9P5iaAmLihUrReuNAPIYa+s3Y=";
1390 meta.description = "A library to help writing wrappers around ocaml code for python";
1391 propagatedBuildInputs = [
1394 expect_test_helpers_core
1405 meta.broken = lib.versionAtLeast ocaml.version "4.14";
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 = [
1419 protocol_version_header = janePackage {
1420 pname = "protocol_version_header";
1421 hash = "sha256-GVjnwne6ksjY9ptLOpbsgG0La6eiCJf1w4teYEtgJrA=";
1422 meta.description = "Protocol versioning";
1423 propagatedBuildInputs = [ core_kernel ];
1428 hash = "sha256-ZRJ7ooXtatEEh0sPL8M9OZ+6s7xNdTuw0Ot6txiG16I=";
1429 meta.description = "OCaml bindings for RE2, Google's regular expression library";
1430 propagatedBuildInputs = [
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++))'
1441 re2_stable = janePackage {
1442 pname = "re2_stable";
1444 hash = "sha256-gyet2Pzn7ZIqQ+UP2J51pRmwaESY2LSGTqCMZZwDTE4=";
1445 meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
1446 propagatedBuildInputs = [
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 = [
1462 redis-async = janePackage {
1463 pname = "redis-async";
1464 hash = "sha256-5msIS2m8nkaprR8NEBfKFWZBWaDJiUtjHbfPelg9/os=";
1465 meta.description = "Redis client for Async applications";
1466 propagatedBuildInputs = [
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 ];
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 ];
1489 semantic_version = janePackage {
1490 pname = "semantic_version";
1491 hash = "sha256-KJanaDUW56ndvnTlnPeQgh0C7zsRqXJ328gcEiVDrmc=";
1492 meta.description = "Semantic versioning";
1493 propagatedBuildInputs = [
1500 sexp = janePackage {
1502 hash = "sha256-JWRYi5lX9UOKg+RGvW6FO61t2HlnJKXhzctOHXe0bCM=";
1503 propagatedBuildInputs = [
1515 meta.description = "S-expression swiss knife";
1518 sexp_grammar = janePackage {
1519 pname = "sexp_grammar";
1520 hash = "sha256-Y/abRingL4+3qvaKgW9jH46E9uq7jYE2+kgr8ERKqfI=";
1521 propagatedBuildInputs = [
1531 meta.description = "Helpers for manipulating [Sexplib.Sexp_grammar] values";
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";
1541 sexp_macro = janePackage {
1542 pname = "sexp_macro";
1543 hash = "sha256-x9WsFFrV7wUqgPUw8KkfyzOxLrS5h5++OSK8QljeQqg=";
1544 propagatedBuildInputs = [
1548 meta.description = "Sexp macros";
1551 sexp_pretty = janePackage {
1552 pname = "sexp_pretty";
1553 hash = "sha256-tcWdYZ717LkGowRSRoEcUNY7VCMX64uhCaY3bXhWxKM=";
1554 meta.description = "S-expression pretty-printer";
1555 propagatedBuildInputs = [
1562 sexp_select = janePackage {
1563 pname = "sexp_select";
1564 hash = "sha256-HEzZowojeK9yDOoTY/l01fYLUdolzQGlMO9u3phV8so=";
1565 propagatedBuildInputs = [
1569 meta.description = "A library to use CSS-style selectors to traverse sexp trees";
1572 sexplib0 = janePackage {
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";
1579 sexplib = janePackage {
1581 hash = "sha256-6MwggpjHo4FmKF88fP56LN9OHi2uIJc13TvKx4T7gEI=";
1582 meta.description = "Library for serializing OCaml values to and from S-expressions";
1583 propagatedBuildInputs = [
1589 shell = janePackage {
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 ];
1598 shexp = janePackage {
1600 hash = "sha256-npIcrxMOcIgsecdUEx5XHYp0KVrXiMzMLi8jskAp4vo=";
1601 propagatedBuildInputs = [
1605 meta.description = "Process library and s-expression based shell";
1608 spawn = janePackage {
1610 minimalOCamlVersion = "4.02.3";
1612 hash = "1fjr91psas5zmk1hxvxh0dchhn0pkyzlr4gg232f5g9vdgissi0p";
1613 meta.description = "Spawning sub-processes";
1614 buildInputs = [ ppx_expect ];
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 ];
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 = [
1636 stdio = janePackage {
1638 hash = "sha256-+QgxqSMqO4VGoMWWJ3QoXdtJKcVpxlSQ/OI7dmcNqjw=";
1639 meta.description = "Standard IO library for OCaml";
1640 propagatedBuildInputs = [ base ];
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 = [
1653 streamable = janePackage {
1655 pname = "streamable";
1656 hash = "sha256-3djrUW2tPKaEmoOIpdjN6ok7U9i07yreqbi1kP+6pnY=";
1657 meta.description = "A collection of types suitable for incremental serialization";
1658 propagatedBuildInputs = [
1669 textutils = janePackage {
1670 pname = "textutils";
1671 hash = "sha256-2qy99MUMpkuNCvCYlk36k4kN6cPjrEILbwEUv4DyNYw=";
1672 meta.description = "Text output utilities";
1673 propagatedBuildInputs = [
1679 textutils_kernel = janePackage {
1680 pname = "textutils_kernel";
1681 hash = "sha256-DiXemANj5ONmvMzp+tly3AJud5u9i7HdaHmn8aVQS48=";
1682 meta.description = "Text output utilities";
1683 propagatedBuildInputs = [
1690 tilde_f = janePackage {
1692 hash = "sha256-qLjM9liJfMIh2fqRPBdnmtUf4xhzk2MY8dFNdON3Aew=";
1693 meta.description = "Provides a let-syntax for continuation-passing style";
1694 propagatedBuildInputs = [
1700 time_now = janePackage {
1702 hash = "sha256-DjSrx/HgwCYS0Xzm2gFvWUVLD7a1KuFVIyVrJjBi8Tc=";
1703 meta.description = "Reports the current time";
1708 propagatedBuildInputs = [
1715 timezone = janePackage {
1717 hash = "sha256-pmXUMvLfgAwP6TV/aP9wMlOs0KfwEWtaJfdjUFLbOu0=";
1718 meta.description = "Time-zone handling";
1719 propagatedBuildInputs = [ core_kernel ];
1722 topological_sort = janePackage {
1723 pname = "topological_sort";
1724 hash = "sha256-um5++60mR++iHAruKqoQfd4EbQ1kb3L+cPOWhs9sIHI=";
1725 meta.description = "Topological sort algorithm";
1726 propagatedBuildInputs = [
1732 typerep = janePackage {
1734 hash = "sha256-iJnIjWZYCTaH29x7nFviCrbnTmHRChZkkj6E5sgi4mU=";
1735 meta.description = "Typerep is a library for runtime types";
1736 propagatedBuildInputs = [ base ];
1739 username_kernel = janePackage {
1740 pname = "username_kernel";
1741 hash = "sha256-UvFL/M9OsD+SOs9MYMKiKzZilLJHzriop6SPA4bOhZQ=";
1742 meta.description = "An identifier for a user";
1743 propagatedBuildInputs = [
1749 variantslib = janePackage {
1750 pname = "variantslib";
1751 hash = "sha256-8NoNkyIP7iEEiei+Q1zrPoJjnWwhCsLsY1vgua22gnw=";
1752 meta.description = "Part of Jane Street's Core library";
1753 propagatedBuildInputs = [ base ];
1756 vcaml = janePackage {
1758 hash = "sha256-pmEKi24+22T76SzI3RpBmQF7ZrQwlngrpFYLoBdLwe0=";
1759 meta.description = "OCaml bindings for the Neovim API";
1760 propagatedBuildInputs = [
1763 expect_test_helpers_async
1766 man_in_the_middle_debugger
1769 patches = [ ./vcaml.patch ];
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 = [
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";
1795 zstandard = janePackage {
1796 pname = "zstandard";
1797 hash = "sha256-QcYqlOpCAr0owmO6sLDJhki8lUnNvtkaxldKb5I5AF0=";
1798 meta.description = "OCaml bindings to Zstandard";
1799 buildInputs = [ ppx_jane ];
1800 propagatedBuildInputs = [