package typerep

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

Source file make_typename.ml

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
OCaml

Innovation. Community. Security.