Projects that want to use the Semaphore
module defined in OCaml 4.12.0 while
staying compatible with older versions of OCaml should use this library instead.
On OCaml versions 4.12 and above, this library defines an alias Semaphore
to
the standard library's definition of the module. Otherwise, it provides an
equivalent definition of Semaphore
.
Opam libraries depending on this module are encouraged to use a conditional dependency:
depends: [
("ocaml" {>= "4.12.0"} | "semaphore-compat")
]
This ensures that any dependencies of your library that don't need pre-4.12
compatibility will never transitively depend on semaphore-compat
.
This repository structure is mostly copied from
JaneStreet/result
, which provides a
compatibility result
type. Thanks to the OCaml maintainers for their
improvements to the standard library.