package alcotest

  1. Overview
  2. Docs
Alcotest is a lightweight and colourful test framework

Install

dune-project
 Dependency

Authors

Maintainers

Sources

alcotest-1.9.1.tbz
sha256=1e29c3b41d4329062105b723dfda3aff86b8cef5e7c7500d0e491fc5fd78e482
sha512=c49d402fa636dcf11f81917610dd1d2eca8606c8919aede4db23710d071f6046a8f93c78de9fbfee26637a53ca67f71fad500bfa2478b7f0f059608a492dd0a5

Description

Alcotest exposes simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.

Published: 01 Oct 2025

README

A lightweight and colourful test framework.


Alcotest exposes a simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run. See the manpage for details.

The API documentation can be found here. For information on contributing to Alcotest, see CONTRIBUTING.md.

OCaml-CI Build Status Alcotest Documentation


Examples

A simple example (taken from examples/simple.ml):

Generated by the following test suite specification:

(* Build with `ocamlbuild -pkg alcotest simple.byte` *)

(* A module with functions to test *)
module To_test = struct
  let lowercase = String.lowercase_ascii
  let capitalize = String.capitalize_ascii
  let str_concat = String.concat ""
  let list_concat = List.append
end

(* The tests *)
let test_lowercase () =
  Alcotest.(check string) "same string" "hello!" (To_test.lowercase "hELLO!")

let test_capitalize () =
  Alcotest.(check string) "same string" "World." (To_test.capitalize "world.")

let test_str_concat () =
  Alcotest.(check string) "same string" "foobar" (To_test.str_concat ["foo"; "bar"])

let test_list_concat () =
  Alcotest.(check (list int)) "same lists" [1; 2; 3] (To_test.list_concat [1] [2; 3])

(* Run it *)
let () =
  let open Alcotest in
  run "Utils" [
      "string-case", [
          test_case "Lower case"     `Quick test_lowercase;
          test_case "Capitalization" `Quick test_capitalize;
        ];
      "string-concat", [ test_case "String mashing" `Quick test_str_concat  ];
      "list-concat",   [ test_case "List mashing"   `Slow  test_list_concat ];
    ]

The result is a self-contained binary which displays the test results. Use dune exec examples/simple.exe -- --help to see the runtime options.

Here's an example of a of failing test suite:

By default, only the first failing test log is printed to the console (and all test logs are captured on disk). Pass --show-errors to print all error messages.

Using Alcotest with opam and Dune

Add (alcotest :with-test) to the depends stanza of your dune-project file, or "alcotest" {with-test} to your opam file. Use the with-test package variable to declare your tests opam dependencies. Call opam to install them:

$ opam install --deps-only --with-test .

You can then declare your test and link with Alcotest: (test (libraries alcotest …) …), and run your tests:

$ dune runtest

Selecting tests to execute

You can filter which tests to run by supplying a regular expression matching the names of the tests to execute, or by passing a regular expression and a comma-separated list of test numbers (or ranges of test numbers, e.g. 2,4..9):

$ ./simple.native test '.*concat*'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[SKIP]     string-case            1   Capitalization.
[OK]       string-concat          0   String mashing.
[OK]       list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 2 tests run.

$ ./simple.native test 'string-case' '1..3'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[OK]       string-case            1   Capitalization.
[SKIP]     string-concat          0   String mashing.
[SKIP]     list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 1 test run.

Note that you cannot filter by test case name (i.e. Lower case or Capitalization), you must filter by test name & number instead.

See the examples directory for more examples.

Quick and Slow tests

In general you should use `Quick tests: tests that are ran on any invocations of the test suite. You should only use `Slow tests for stress tests that are ran only on occasion (typically before a release or after a major change). These slow tests can be suppressed by passing the -q flag on the command line, e.g.:

$ ./test.exe -q # run only the quick tests
$ ./test.exe    # run quick and slow tests

Passing custom options to the tests

In most cases, the base tests are unit -> unit functions. However, it is also possible to pass an extra option to all the test functions by using 'a -> unit, where 'a is the type of the extra parameter.

In order to do this, you need to specify how this extra parameter is read on the command-line, by providing a Cmdliner term for command-line arguments which explains how to parse and serialize values of type 'a (note: do not use positional arguments, only optional arguments are supported).

For instance:

let test_nice i = Alcotest.(check int) "Is it a nice integer?" i 42

let int =
  let doc = "What is your preferred number?" in
  Cmdliner.Arg.(required & opt (some int) None & info ["n"] ~doc ~docv:"NUM")

let () =
  Alcotest.run_with_args "foo" int [
    "all", ["nice", `Quick, test_nice]
  ]

Will generate test.exe such that:

$ test.exe test
test.exe: required option -n is missing

$ test.exe test -n 42
Testing foo.
[OK]                all          0   int.

Lwt

Alcotest provides an Alcotest_lwt module that you could use to wrap Lwt test cases. The basic idea is that instead of providing a test function in the form unit -> unit, you provide one with the type unit -> unit Lwt.t and alcotest-lwt calls Lwt_main.run for you.

However, there are a couple of extra features:

  • If an async exception occurs, it will cancel your test case for you and fail it (rather than exiting the process).
  • You get given a switch, which will be turned off when the test case finishes (or fails). You can use that to free up any resources.

For instance:

let free () = print_endline "freeing all resources"; Lwt.return ()

let test_lwt switch () =
  Lwt_switch.add_hook (Some switch) free;
  Lwt.async (fun () -> failwith "All is broken");
  Lwt_unix.sleep 10.

let () =
  Lwt_main.run @@ Alcotest_lwt.run "foo" [
    "all", [
      Alcotest_lwt.test_case "one" `Quick test_lwt
    ]
  ]

Will generate:

$ test.exe
Testing foo.
[ERROR]             all          0   one.
-- all.000 [one.] Failed --
in _build/_tests/all.000.output:
freeing all resources
[failure] All is broken

Comparison with other testing frameworks

The README is pretty clear about that:

Alcotest is the only testing framework using colors!

More seriously, Alcotest is similar to ounit but it fixes a few of the problems found in that library:

  • Alcotest has a nicer output, it is easier to see what failed and what succeeded and to read the log outputs of the failed tests;
  • Alcotest uses combinators to define pretty-printers and comparators between the things to test.

Other nice tools doing different kind of testing also exist:

  • qcheck does random generation and property testing (e.g. Quick Check);
  • crowbar and bun are similar to qcheck, but use compiler-directed randomness, i.e. they take advantage of the AFL support the OCaml compiler;
  • ppx_inline_tests allows to write tests in the same file as your source-code; they will be run only in a special mode of compilation.

Dependencies (9)

  1. ocaml-syntax-shims
  2. uutf >= "1.0.1"
  3. stdlib-shims
  4. re >= "1.7.2"
  5. cmdliner >= "1.2.0"
  6. astring
  7. fmt >= "0.8.7"
  8. ocaml >= "4.08"
  9. dune >= "3.0"

Dev Dependencies (1)

  1. odoc with-doc

  1. ahrocksdb
  2. albatross >= "1.5.4"
  3. alcobar
  4. alcotest-async >= "1.9.1"
  5. alcotest-js >= "1.9.1"
  6. alcotest-lwt >= "1.9.1"
  7. alcotest-mirage >= "1.9.1"
  8. alg_structs_qcheck
  9. algaeff
  10. ambient-context
  11. ambient-context-eio
  12. ambient-context-lwt
  13. angstrom >= "0.7.0"
  14. ansi >= "0.6.0"
  15. anycache >= "0.7.4"
  16. anycache-async
  17. anycache-lwt
  18. arc
  19. archetype >= "1.4.2"
  20. archi
  21. arp
  22. arrakis < "1.1.0"
  23. art
  24. asai
  25. asak >= "0.2"
  26. asli >= "0.2.0"
  27. asn1-combinators >= "0.2.5"
  28. atd >= "2.3.3"
  29. atdgen >= "2.10.0"
  30. atdpy
  31. atdts
  32. avro-simple
  33. backoff
  34. base32
  35. base64 >= "2.1.2" & < "3.2.0" | >= "3.4.0"
  36. bastet
  37. bastet_lwt
  38. bech32
  39. bechamel >= "0.5.0"
  40. bigarray-overlap
  41. bigstringaf
  42. biotk >= "0.4"
  43. bitlib
  44. blake2
  45. bloomf
  46. bls12-381 < "0.4.1" | >= "3.0.0" & < "18.0"
  47. bls12-381-hash
  48. bls12-381-js >= "0.4.2"
  49. bls12-381-js-gen >= "0.4.2"
  50. bls12-381-legacy
  51. bls12-381-signature
  52. bls12-381-unix
  53. blurhash
  54. brisk-reconciler
  55. builder-web
  56. bytebuffer
  57. ca-certs
  58. ca-certs-nss
  59. cachet
  60. cachet-lwt
  61. cachet-solo5
  62. cactus
  63. caldav
  64. calendar >= "3.0.0"
  65. calendars >= "2.0.0"
  66. callipyge
  67. camlix
  68. camlkit
  69. camlkit-base
  70. capnp-rpc
  71. capnp-rpc-unix
  72. caqti >= "1.7.0"
  73. caqti-async >= "1.7.0"
  74. caqti-driver-mariadb >= "1.7.0"
  75. caqti-driver-postgresql >= "1.7.0"
  76. caqti-driver-sqlite3 >= "1.7.0"
  77. caqti-dynload >= "2.0.1"
  78. caqti-eio
  79. caqti-lwt >= "1.7.0"
  80. caqti-miou
  81. carray
  82. carton < "1.0.0"
  83. carton-git
  84. carton-lwt >= "0.4.3" & < "1.0.0"
  85. catala >= "0.6.0"
  86. cborl
  87. cf-lwt
  88. chacha
  89. chamelon
  90. chamelon-unix
  91. charrua-client
  92. charrua-server
  93. checked_oint
  94. checkseum >= "0.0.3"
  95. cid
  96. clarity-lang
  97. class_group_vdf
  98. cohttp
  99. cohttp-curl-async
  100. cohttp-curl-lwt
  101. cohttp-eio >= "6.0.0~beta2"
  102. colombe >= "0.2.0"
  103. color
  104. commons
  105. conan
  106. conan-cli
  107. conan-database
  108. conan-lwt
  109. conan-unix
  110. conex < "0.10.0"
  111. conex-mirage-crypto
  112. conformist
  113. cookie
  114. corosync
  115. cow >= "2.2.0"
  116. crockford
  117. css
  118. css-parser
  119. cstruct
  120. cstruct-sexp
  121. ctypes-zarith
  122. cuid
  123. cure2
  124. curly
  125. current
  126. current-albatross-deployer
  127. current_git >= "0.7.1"
  128. current_incr
  129. current_rpc >= "0.7.4"
  130. data-encoding
  131. dates_calc
  132. dbase4
  133. decimal >= "0.3.0"
  134. decompress
  135. depyt
  136. digestif >= "0.9.0"
  137. dispatch >= "0.4.1"
  138. dkim
  139. dkim-bin
  140. dkim-mirage
  141. dkml-dune-dsl-show
  142. dkml-install
  143. dkml-install-installer
  144. dkml-install-runner
  145. dmarc
  146. dns >= "4.4.1"
  147. dns-cli
  148. dns-client >= "4.6.3"
  149. dns-forward-lwt-unix
  150. dns-resolver
  151. dns-server
  152. dns-tsig
  153. dnssd
  154. dnssec
  155. dockerfile >= "8.2.7"
  156. dockerfile-opam >= "8.3.4"
  157. domain-local-await >= "0.2.1"
  158. domain-local-timeout
  159. domain-name
  160. dream
  161. dream-htmx
  162. dream-pure
  163. dscheck >= "0.1.1"
  164. duff
  165. dune-deps >= "1.4.0"
  166. dune-release >= "1.0.0"
  167. duration
  168. echo
  169. eio < "0.12"
  170. eio_linux
  171. eio_windows
  172. emile
  173. encore
  174. eqaf >= "0.5"
  175. equinoxe
  176. equinoxe-cohttp
  177. equinoxe-hlc
  178. ezgzip
  179. ezjsonm
  180. ezjsonm-lwt
  181. FPauth
  182. FPauth-core
  183. FPauth-responses
  184. FPauth-strategies
  185. faraday != "0.2.0"
  186. farfadet
  187. fat-filesystem
  188. fehu < "1.0.0~alpha3"
  189. ff
  190. ff-pbt
  191. flex-array
  192. flux
  193. fluxt
  194. forester >= "5.0"
  195. fsevents-lwt
  196. functoria
  197. fungi
  198. geojson
  199. geoml >= "0.1.1"
  200. git
  201. git-cohttp
  202. git-cohttp-unix
  203. git-kv != "0.1.3"
  204. git-mirage
  205. git-net
  206. git-split
  207. git-unix
  208. gitlab-unix
  209. glicko2
  210. gmap
  211. gobba
  212. gpt
  213. graphql
  214. graphql-async
  215. graphql-cohttp >= "0.13.0"
  216. graphql-lwt
  217. graphql_parser != "0.11.0"
  218. graphql_ppx
  219. guardian >= "0.4.0"
  220. h1
  221. h1_parser
  222. h2
  223. hacl
  224. hacl-star >= "0.6.0"
  225. hacl_func
  226. hacl_x25519
  227. handlebars-ml >= "0.2.1"
  228. highlexer
  229. hkdf
  230. hockmd
  231. html_of_jsx
  232. http
  233. http-multipart-formdata < "2.0.0"
  234. httpaf >= "0.2.0"
  235. httpcats
  236. httpun
  237. httpun-ws
  238. hugin < "1.0.0~alpha3"
  239. huml
  240. hvsock
  241. icalendar
  242. idna
  243. imagelib
  244. index
  245. inferno >= "20220603"
  246. influxdb-async
  247. influxdb-lwt
  248. inquire < "0.2.0"
  249. intel_hex >= "0.3"
  250. interval-map
  251. iomux
  252. irmin
  253. irmin-bench
  254. irmin-chunk
  255. irmin-cli
  256. irmin-containers
  257. irmin-fs
  258. irmin-git
  259. irmin-graphql
  260. irmin-pack
  261. irmin-pack-tools
  262. irmin-test != "3.6.1"
  263. irmin-tezos
  264. irmin-unix
  265. irmin-watcher
  266. jekyll-format
  267. jose
  268. json-data-encoding >= "0.9"
  269. json-data-encoding-bson >= "1.1.1"
  270. json_decoder
  271. jsonfeed
  272. jsonschema-core
  273. jsonschema-validation
  274. jsonxt
  275. junit_alcotest >= "2.2.0"
  276. jwto
  277. kaun < "1.0.0~alpha3"
  278. kcas >= "0.6.0"
  279. kcas_data >= "0.6.0"
  280. kdf
  281. ke >= "0.2"
  282. kkmarkdown
  283. kmt
  284. lambda-runtime
  285. lambda_streams
  286. lambda_streams_async
  287. lambdapi
  288. layoutz
  289. letters
  290. liquid_ml >= "0.1.3"
  291. lmdb >= "1.0"
  292. lockfree >= "0.3.1"
  293. logical
  294. logtk >= "1.6"
  295. lp
  296. lp-glpk
  297. lp-glpk-js < "0.5.0"
  298. lp-gurobi < "0.5.0"
  299. lru
  300. lt-code
  301. luv
  302. mazeppa
  303. mbr-format
  304. mdx >= "1.6.0"
  305. mec
  306. mechaml >= "1.2.1"
  307. mel-bastet
  308. merlin = "4.17.1-501"
  309. merlin-lib >= "4.17.1-501"
  310. metrics
  311. middleware
  312. mimic
  313. minicaml = "0.3.1" | >= "0.4"
  314. mirage >= "4.0.0"
  315. mirage-block-partition
  316. mirage-block-ramdisk
  317. mirage-channel >= "4.0.1"
  318. mirage-crypto-ec
  319. mirage-flow-unix
  320. mirage-kv >= "2.0.0"
  321. mirage-kv-mem >= "4.0.1"
  322. mirage-kv-unix >= "3.0.0"
  323. mirage-logs
  324. mirage-nat
  325. mirage-net-unix
  326. mirage-runtime < "4.7.0"
  327. mirage-tc
  328. mjson
  329. mlgpx
  330. mmdb < "0.3.0"
  331. mnd
  332. mqtt
  333. mrmime >= "0.2.0"
  334. msgpck >= "1.6"
  335. mssql >= "2.0.3"
  336. multibase
  337. multicore-magic
  338. multihash
  339. multihash-digestif
  340. multipart-form-data
  341. multipart_form
  342. multipart_form-eio
  343. multipart_form-lwt
  344. multipart_form-miou
  345. named-pipe
  346. nanoid
  347. nbd >= "4.0.3"
  348. nbd-tool
  349. neo4j_bolt
  350. nloge
  351. nocoiner
  352. non_empty_list
  353. nx < "1.0.0~alpha3"
  354. nx-datasets
  355. nx-text
  356. OCADml >= "0.6.0"
  357. obatcher
  358. ocaml-ai-sdk
  359. ocaml-index < "5.4.1-503"
  360. ocaml-r >= "0.4.0"
  361. ocaml-version >= "3.5.0"
  362. ocamlformat >= "0.13.0" & < "0.25.1"
  363. ocamlformat-lib
  364. ocamlformat-mlx-lib
  365. ocamlformat-rpc < "removed"
  366. ocamline
  367. ocluster
  368. ocue
  369. odoc < "2.1.1"
  370. oenv >= "0.1.0"
  371. ohex
  372. oidc
  373. oktree >= "0.2.4"
  374. opam-0install
  375. opam-0install-cudf >= "0.5.0"
  376. opam-compiler
  377. opam-file-format >= "2.1.1"
  378. opam-repomin
  379. opencage
  380. opentelemetry >= "0.6"
  381. opentelemetry-client
  382. opentelemetry-client-cohttp-eio
  383. opentelemetry-client-cohttp-lwt >= "0.6"
  384. opentelemetry-client-ocurl >= "0.6"
  385. opentelemetry-client-ocurl-lwt
  386. opentelemetry-cohttp-lwt >= "0.6"
  387. opentelemetry-logs
  388. opentelemetry-lwt >= "0.6"
  389. opium
  390. opium-graphql
  391. opium-testing
  392. opium_kernel
  393. orewa
  394. orgeat
  395. ortac-core
  396. ortac-wrapper
  397. osnap < "0.3.0"
  398. osx-acl
  399. osx-attr
  400. osx-cf
  401. osx-fsevents
  402. osx-membership
  403. osx-mount
  404. osx-xattr
  405. otoggl
  406. owl >= "0.7.0" & != "0.9.0" & != "1.0.0"
  407. owl-base < "0.5.0"
  408. owl-ode >= "0.1.0" & != "0.2.0"
  409. owl-symbolic
  410. par_incr
  411. parseff
  412. passe
  413. passmaker
  414. patch
  415. pbkdf
  416. pecu >= "0.2"
  417. pf-qubes
  418. pg_query >= "0.9.6"
  419. pgx >= "1.0"
  420. pgx_unix >= "1.0"
  421. pgx_value_core
  422. pgx_value_ptime
  423. phylogenetics
  424. piaf
  425. picos < "0.5.0"
  426. picos_meta
  427. piece_rope
  428. plebeia >= "2.0.0"
  429. polyglot
  430. polymarket
  431. polynomial
  432. ppx_blob >= "0.3.0"
  433. ppx_catch
  434. ppx_deriving_cmdliner
  435. ppx_deriving_ezjsonm
  436. ppx_deriving_qcheck
  437. ppx_deriving_rpc
  438. ppx_deriving_yaml
  439. ppx_inline_alcotest
  440. ppx_map
  441. ppx_marshal
  442. ppx_mica
  443. ppx_parser
  444. ppx_protocol_conv >= "5.0.0"
  445. ppx_protocol_conv_json >= "5.0.0"
  446. ppx_protocol_conv_jsonm >= "5.0.0"
  447. ppx_protocol_conv_msgpack >= "5.0.0"
  448. ppx_protocol_conv_xml_light >= "5.0.0"
  449. ppx_protocol_conv_xmlm
  450. ppx_protocol_conv_yaml >= "5.0.0"
  451. ppx_repr
  452. ppx_subliner
  453. ppx_units
  454. ppx_yojson >= "1.1.0"
  455. pratter
  456. prbnmcn-ucb1 >= "0.0.2"
  457. prc
  458. preface
  459. pretty_expressive
  460. prettym
  461. proc-smaps
  462. producer
  463. progress
  464. prom
  465. prometheus < "1.2"
  466. prometheus-app
  467. protocell
  468. protocol-9p < "0.11.0" | >= "0.11.2"
  469. protocol-9p-unix
  470. proton
  471. psq
  472. public-suffix
  473. purl
  474. pxshot
  475. pyast
  476. qcaml
  477. qcheck >= "0.25"
  478. qcheck-alcotest
  479. qcheck-core >= "0.25"
  480. qcow-stream >= "0.13.0"
  481. qcow-tool >= "0.13.0"
  482. qcow-types >= "0.13.0"
  483. qdrant
  484. query-json
  485. quickjs
  486. quill < "1.0.0~alpha3"
  487. randii
  488. reason-standard
  489. red-black-tree
  490. reparse >= "2.0.0" & < "3.0.0"
  491. reparse-unix < "2.1.0"
  492. resp
  493. resp-unix >= "0.10.0"
  494. resto >= "0.9"
  495. rfc1951 < "1.0.0"
  496. routes < "2.0.0"
  497. rpc
  498. rpclib
  499. rpclib-async
  500. rpclib-lwt
  501. rpmfile < "0.3.0"
  502. rpmfile-eio
  503. rpmfile-unix
  504. rune < "1.0.0~alpha3"
  505. runtime_events_tools >= "0.5.2"
  506. SZXX >= "4.0.0"
  507. saga
  508. salsa20
  509. salsa20-core
  510. sanddb >= "0.2"
  511. saturn != "0.4.1"
  512. saturn_lockfree != "0.4.1"
  513. scrypt-kdf
  514. secp256k1 >= "0.4.1"
  515. secp256k1-internal
  516. semver >= "0.2.1"
  517. sendmail
  518. sendmail-lwt
  519. sendmail-miou-unix
  520. sendmail-mirage
  521. sendmsg
  522. seqes
  523. server-reason-react
  524. session-cookie
  525. session-cookie-async
  526. session-cookie-lwt
  527. shakuhachi
  528. sherlodoc
  529. sihl < "0.2.0"
  530. sihl-type
  531. slug
  532. smaws-clients
  533. smaws-lib
  534. smol
  535. smol-helpers
  536. sodium-fmt
  537. solidity-alcotest
  538. sowilo < "1.0.0~alpha3"
  539. spdx_licenses
  540. spectrum >= "0.2.0"
  541. spectrum_capabilities
  542. spectrum_palette_ppx
  543. spectrum_palettes
  544. spectrum_tools
  545. spin >= "0.7.0"
  546. spurs < "0.1.1"
  547. squirrel
  548. ssh-agent
  549. ssl >= "0.6.0"
  550. starred_ml
  551. stramon-lib
  552. stringx
  553. styled-ppx
  554. swapfs
  555. symex >= "0.2"
  556. synchronizer >= "0.2"
  557. syslog-rfc5424
  558. tabr
  559. talon < "1.0.0~alpha3"
  560. tar-mirage
  561. tcpip
  562. tdigest < "2.1.0"
  563. term-indexing
  564. term-tools
  565. terminal
  566. terminal_size >= "0.1.1"
  567. terminus
  568. terminus-cohttp
  569. terminus-hlc
  570. terml
  571. testo
  572. testo-lwt
  573. textmate-language >= "0.3.0"
  574. textrazor
  575. thread-table
  576. timedesc
  577. timere
  578. timmy
  579. timmy-jsoo
  580. timmy-lwt
  581. timmy-unix
  582. tls >= "0.12.8"
  583. toc
  584. topojson
  585. topojsone
  586. trail
  587. traits
  588. transept
  589. tsort >= "2.2.0"
  590. twostep
  591. type_eq
  592. type_id
  593. typeid >= "1.0.1"
  594. tyre >= "0.4"
  595. tyxml >= "4.2.0"
  596. tyxml-jsx
  597. tyxml-ppx >= "4.3.0"
  598. tyxml-syntax
  599. uecc
  600. ulid
  601. universal-portal
  602. unix-dirent
  603. unix-errno
  604. unix-sys-resource
  605. unix-sys-stat
  606. unix-time
  607. unstrctrd
  608. uring < "0.4"
  609. user-agent-parser
  610. uspf
  611. uspf-lwt
  612. uspf-mirage
  613. uspf-unix
  614. utcp
  615. utop >= "2.13.0"
  616. validate
  617. validator
  618. vercel
  619. vhd-format-lwt >= "0.13.0"
  620. wayland >= "2.0"
  621. wcwidth
  622. websocketaf
  623. x509 >= "0.7.0"
  624. xapi-rrd
  625. xapi-stdext-date
  626. xapi-stdext-encodings
  627. xapi-stdext-std >= "4.16.0"
  628. xdge
  629. xkbcommon
  630. yaml
  631. yaml-sexp
  632. yocaml
  633. yocaml_syndication >= "2.0.0"
  634. yocaml_yaml < "2.0.0"
  635. yojson >= "1.6.0"
  636. yojson-five
  637. yuscii >= "0.3.0"
  638. yuujinchou >= "1.0.0"
  639. zar
  640. zed >= "3.2.2"
  641. zlist < "0.4.0"

Conflicts (2)

  1. js_of_ocaml-compiler < "5.8"
  2. result < "1.5"