package colibri2

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module type S1 = sig ... end

imperative, extensible and heterogene Arrays

module Make1 (K : sig ... end) (D : sig ... end) : S1 with type 'a key = 'a K.t and type ('a, 'b) data = ('a, 'b) D.t
module type S2 = sig ... end
module Make2 (K : sig ... end) (D : sig ... end) : S2 with type ('a1, 'a2) key = ('a1, 'a2) K.t and type ('a1, 'a2, 'b) data = ('a1, 'a2, 'b) D.t

The following are needed in order to avoid ('a,'b) t = 'b in an instanciation of the previous functors (cf. ocaml mantis #5083: J.Garrigue : "Phantom types must be either abstract or private. In particular, using an abbreviation for a phantom type is just a Russian roulette.")

module type R1 = sig ... end

Same as S1 but for ('a,'b) data = 'b

module RMake1 (K : sig ... end) : R1 with type 'a key = 'a K.t
module type T1 = sig ... end

Same as S1 but for ('a,'b) data = 'a

module TMake1 (K : sig ... end) : T1 with type 'a key = 'a K.t
OCaml

Innovation. Community. Security.