package core_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Functors and signatures for dealing with modules for tuples.

module T2 : sig ... end

Signature for a 2-tuple module

module T3 : sig ... end

Signature for a 3-tuple module

These functors allow users to write:

module Foo = struct
  include Tuple.Make       (String) (Int)
  include Tuple.Comparable (String) (Int)
  include Tuple.Hashable   (String) (Int)
  include Tuple.Binable    (String) (Int)
end
module Make (T1 : sig ... end) (T2 : sig ... end) : sig ... end
module type Comparable_sexpable = sig ... end
module type Hashable_sexpable = sig ... end

The difference between Hashable and Hashable_t functors is that the former's result type doesn't contain type t and the latter does. Therefore, Hashable can't be used to combine two pairs into 4-tuple. but Hashable_t can. On the other hand result of Hashable_t cannot be combined with Comparable.

module Sexpable (S1 : Sexpable.S) (S2 : Sexpable.S) : sig ... end
module Binable (B1 : Binable.S) (B2 : Binable.S) : sig ... end
module Hasher (H1 : sig ... end) (H2 : sig ... end) : Hashable_sexpable with type t := Make(H1)(H2).t
OCaml

Innovation. Community. Security.