Module Higher_kinded
Types
type ('a, 'b, 'witness) t2= ('a, ('b, 'witness) t) tIf
Aimplements the signatureS2,(a, b, A.witness2) t2is equivalent to(a, b) A.t.
type ('a, 'b, 'c, 'witness) t3= ('a, 'b, ('c, 'witness) t) t2If
Aimplements the signatureS3,(a, b, c, A.witness3) t3is equivalent to(a, b, c) A.t.
type ('a, 'b, 'c, 'd, 'witness) t4= ('a, 'b, 'c, ('d, 'witness) t) t3If
Aimplements the signatureS4,(a, b, c, d, A.witness4) t4is equivalent to(a, b, c, d) A.t.
type ('a, 'b, 'c, 'd, 'e, 'witness) t5= ('a, 'b, 'c, 'd, ('e, 'witness) t) t4If
Aimplements the signatureS5,(a, b, c, d, e, A.witness5) t5is equivalent to(a, b, c, d, e) A.t.
type ('a, 'b, 'c, 'd, 'e, 'f, 'witness) t6= ('a, 'b, 'c, 'd, 'e, ('f, 'witness) t) t5If
Aimplements the signatureS6,(a, b, c, d, e, f, A.witness6) t6is equivalent to(a, b, c, d, e, f) A.t.
Signatures
module type S = Higher_kinded__.Higher_kinded_intf.S with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S2 = Higher_kinded__.Higher_kinded_intf.S2 with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S3 = Higher_kinded__.Higher_kinded_intf.S3 with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S4 = Higher_kinded__.Higher_kinded_intf.S4 with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S5 = Higher_kinded__.Higher_kinded_intf.S5 with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S6 = Higher_kinded__.Higher_kinded_intf.S6 with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S7 = Higher_kinded__.Higher_kinded_intf.S7 with type ('a, 'witness) higher_kinded := ('a, 'witness) tmodule type S8 = Higher_kinded__.Higher_kinded_intf.S8 with type ('a, 'witness) higher_kinded := ('a, 'witness) tFunctors
module Make5 : functor (X : sig ... end) -> S5 with type ('a, 'w, 'x, 'y, 'z) t := ('a, 'w, 'x, 'y, 'z) X.tmodule Make6 : functor (X : sig ... end) -> S6 with type ('a, 'v, 'w, 'x, 'y, 'z) t := ('a, 'v, 'w, 'x, 'y, 'z) X.tImplementations
module Array : S with type 'a t := 'a Base.Array.tmodule Either : S2 with type ('a, 'b) t := ('a, 'b) Base.Either.tmodule Hash_set : S with type 'a t := 'a Base.Hash_set.tmodule Hashtbl : S2 with type ('a, 'b) t := ('a, 'b) Base.Hashtbl.tmodule Lazy : S with type 'a t := 'a Base.Lazy.tmodule List : S with type 'a t := 'a Base.List.tmodule Map : S3 with type ('a, 'b, 'c) t := ('a, 'b, 'c) Base.Map.tmodule Option : S with type 'a t := 'a Base.Option.tmodule Queue : S with type 'a t := 'a Base.Queue.tmodule Ref : S with type 'a t := 'a Base.Ref.tmodule Result : S2 with type ('a, 'e) t := ('a, 'e) Base.Result.tmodule Set : S2 with type ('a, 'b) t := ('a, 'b) Base.Set.tmodule Sequence : S with type 'a t := 'a Base.Sequence.tmodule Type_equal : S2 with type ('a, 'b) t := ('a, 'b) Base.Type_equal.tt itself has two type parameters, so we might as well implement S2 right here.
include S2 with type ('a, 'witness) S2.t := ('a, 'witness) t
type (_, _) higher_kindedtype ('a, 'z) ttype witness2type 'z witness1= ('z, witness2) higher_kindedtype ('a, 'z) witness= ('a, 'z witness1) higher_kinded