package octez-proto-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=55ea1fb8bb3273a7fc270ca8f650d45c56449665619482aad9bc12f3ea736b7e
sha512=fec850fc2d17d7490bbabd5147d62aad13b3aaed8774270f8a38ab419670ed03e0fd30cf8642a97984eca5c2446726fe590ad99c015f7ec50919dc7652f25053
doc/octez-proto-libs.protocol-environment/Tezos_protocol_environment/V5/Make/Compare/index.html
Module Make.Compare
Source
Compare
Monomorphic comparison for common ground types and common type constructors.
Compare
provides a module signature for the standard comparison functions and operators as well as modules of that signature for the common OCaml ground types (int
, bool
, etc.) and type constructors (list
, option
, etc.).
Compare
also provides some additional helpers for comparison-related tasks.
Signatures and a functor
module type COMPARABLE = sig ... end
module type S = sig ... end
S
is a signature for a fully-fledge comparison module. It includes all the functions and operators derived from a compare
function.
Base types
The specialised comparison and all the specialised functions and operators on the base types are compatible with the polymorphic comparison and all the polymorphic functions and operators from the Stdlib
.
module Int : sig ... end
Int
is a comparison module. Out of performance concerns, the signature actually contains compiler builtins (external
) rather than val
.
Type constructors
Provided the functor argument(s) are compatible with the polymorphic comparison of the Stdlib
, then the specialised comparison and all the specialised functions and operators on the derived types are compatible with the polymorphic comparison and all the polymorphic functions and operators from the Stdlib
.
module Result
(Ok : COMPARABLE)
(Error : COMPARABLE) :
S with type t = (Ok.t, Error.t) Pervasives.result
List lengths
Helpers for more readable Stdlib.List.compare_lengths
and Stdlib.List.compare_length_with
.
These modules are intended to be used as Module.(expression)
, most often within an if
condition. E.g.,
if Compare.List_length_with.(chunks > max_number_of_chunks) then
raise Maximum_size_exceeeded
else
..
module List_length_with : sig ... end
module List_lengths : sig ... end