1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
open Std_internal
module Make0 (X : Named_intf.S0) = struct
module Name_of_x = Typename.Make0 (X)
let typename_of_t = Name_of_x.typename_of_t
let named =
Typerep.Named.T0 (module struct
type named = X.t
type t = X.t
let typename_of_named = Name_of_x.typename_of_t
let typename_of_t = typename_of_t
let witness = Type_equal.refl
end : Typerep.Named.T0 with type t = X.t)
end
module Make1 (X : Named_intf.S1) = struct
module Name_of_x = Typename.Make1 (X)
let typename_of_t = Name_of_x.typename_of_t
let named (type p1) of_p1 =
let typename_of_t = Name_of_x.typename_of_t
(Typerep.typename_of_t of_p1)
in
Typerep.Named.T1 (module struct
type 'a named = 'a X.t
type a = p1 let a = of_p1
type t = p1 X.t
let typename_of_named = Name_of_x.typename_of_t
let typename_of_t = typename_of_t
let witness = Type_equal.refl
end : Typerep.Named.T1 with type t = p1 X.t)
end
module Make2 (X : Named_intf.S2) = struct
module Name_of_x = Typename.Make2 (X)
let typename_of_t = Name_of_x.typename_of_t
let named (type p1) (type p2) of_p1 of_p2 =
let typename_of_t = Name_of_x.typename_of_t
(Typerep.typename_of_t of_p1)
(Typerep.typename_of_t of_p2)
in
Typerep.Named.T2 (module struct
type ('a, 'b) named = ('a, 'b) X.t
type a = p1 let a = of_p1
type b = p2 let b = of_p2
type t = (p1, p2) X.t
let typename_of_named = Name_of_x.typename_of_t
let typename_of_t = typename_of_t
let witness = Type_equal.refl
end : Typerep.Named.T2 with type t = (p1, p2) X.t)
end
module Make3 (X : Named_intf.S3) = struct
module Name_of_x = Typename.Make3 (X)
let typename_of_t = Name_of_x.typename_of_t
let named (type p1) (type p2) (type p3) of_p1 of_p2 of_p3 =
let typename_of_t = Name_of_x.typename_of_t
(Typerep.typename_of_t of_p1)
(Typerep.typename_of_t of_p2)
(Typerep.typename_of_t of_p3)
in
Typerep.Named.T3 (module struct
type ('a, 'b, 'c) named = ('a, 'b, 'c) X.t
type a = p1 let a = of_p1
type b = p2 let b = of_p2
type c = p3 let c = of_p3
type t = (p1, p2, p3) X.t
let typename_of_named = Name_of_x.typename_of_t
let typename_of_t = typename_of_t
let witness = Type_equal.refl
end : Typerep.Named.T3 with type t = (p1, p2, p3) X.t)
end
module Make4 (X : Named_intf.S4) = struct
module Name_of_x = Typename.Make4 (X)
let typename_of_t = Name_of_x.typename_of_t
let named (type p1) (type p2) (type p3) (type p4) of_p1 of_p2 of_p3 of_p4 =
let typename_of_t = Name_of_x.typename_of_t
(Typerep.typename_of_t of_p1)
(Typerep.typename_of_t of_p2)
(Typerep.typename_of_t of_p3)
(Typerep.typename_of_t of_p4)
in
Typerep.Named.T4 (module struct
type ('a, 'b, 'c, 'd) named = ('a, 'b, 'c, 'd) X.t
type a = p1 let a = of_p1
type b = p2 let b = of_p2
type c = p3 let c = of_p3
type d = p4 let d = of_p4
type t = (p1, p2, p3, p4) X.t
let typename_of_named = Name_of_x.typename_of_t
let typename_of_t = typename_of_t
let witness = Type_equal.refl
end : Typerep.Named.T4 with type t = (p1, p2, p3, p4) X.t)
end
module Make5 (X : Named_intf.S5) = struct
module Name_of_x = Typename.Make5 (X)
let typename_of_t = Name_of_x.typename_of_t
let named
(type p1) (type p2) (type p3) (type p4) (type p5)
of_p1 of_p2 of_p3 of_p4 of_p5 =
let typename_of_t = Name_of_x.typename_of_t
(Typerep.typename_of_t of_p1)
(Typerep.typename_of_t of_p2)
(Typerep.typename_of_t of_p3)
(Typerep.typename_of_t of_p4)
(Typerep.typename_of_t of_p5)
in
Typerep.Named.T5 (module struct
type ('a, 'b, 'c, 'd, 'e) named = ('a, 'b, 'c, 'd, 'e) X.t
type a = p1 let a = of_p1
type b = p2 let b = of_p2
type c = p3 let c = of_p3
type d = p4 let d = of_p4
type e = p5 let e = of_p5
type t = (p1, p2, p3, p4, p5) X.t
let typename_of_named = Name_of_x.typename_of_t
let typename_of_t = typename_of_t
let witness = Type_equal.refl
end : Typerep.Named.T5 with type t = (p1, p2, p3, p4, p5) X.t)
end
|