1///|
2pub impl[A : 
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (

type parameter A

A
,

type parameter B

B
) with
(self : (A, B)) -> (A, B)
clone
(
(A, B)
self
) {
3 let (
A
a
,
B
b
) =
(A, B)
self
4 (
A
a
.
(A) -> A
clone
(),
B
b
.
(B) -> B
clone
())
5} 6 7///| 8pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (

type parameter A

A
,

type parameter B

B
,

type parameter C

C
) with
(self : (A, B, C)) -> (A, B, C)
clone
(
(A, B, C)
self
) {
9 let (
A
a
,
B
b
,
C
c
) =
(A, B, C)
self
10 (
A
a
.
(A) -> A
clone
(),
B
b
.
(B) -> B
clone
(),
C
c
.
(C) -> C
clone
())
11} 12 13///| 14pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (

type parameter A

A
,

type parameter B

B
,

type parameter C

C
,

type parameter D

D
) with
(self : (A, B, C, D)) -> (A, B, C, D)
clone
(
15
(A, B, C, D)
self
16) { 17 let (
A
a
,
B
b
,
C
c
,
D
d
) =
(A, B, C, D)
self
18 (
A
a
.
(A) -> A
clone
(),
B
b
.
(B) -> B
clone
(),
C
c
.
(C) -> C
clone
(),
D
d
.
(D) -> D
clone
())
19} 20 21///| 22pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
23

type parameter A

A
,
24

type parameter B

B
,
25

type parameter C

C
,
26

type parameter D

D
,
27

type parameter E

E
,
28) with
(self : (A, B, C, D, E)) -> (A, B, C, D, E)
clone
(
(A, B, C, D, E)
self
) {
29 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
) =
(A, B, C, D, E)
self
30 (
A
a
.
(A) -> A
clone
(),
B
b
.
(B) -> B
clone
(),
C
c
.
(C) -> C
clone
(),
D
d
.
(D) -> D
clone
(),
E
e
.
(E) -> E
clone
())
31} 32 33///| 34pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
35

type parameter A

A
,
36

type parameter B

B
,
37

type parameter C

C
,
38

type parameter D

D
,
39

type parameter E

E
,
40

type parameter F

F
,
41) with
(self : (A, B, C, D, E, F)) -> (A, B, C, D, E, F)
clone
(
(A, B, C, D, E, F)
self
) {
42 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
) =
(A, B, C, D, E, F)
self
43 (
A
a
.
(A) -> A
clone
(),
B
b
.
(B) -> B
clone
(),
C
c
.
(C) -> C
clone
(),
D
d
.
(D) -> D
clone
(),
E
e
.
(E) -> E
clone
(),
F
f
.
(F) -> F
clone
())
44} 45 46///| 47pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
48

type parameter A

A
,
49

type parameter B

B
,
50

type parameter C

C
,
51

type parameter D

D
,
52

type parameter E

E
,
53

type parameter F

F
,
54

type parameter G

G
,
55) with
(self : (A, B, C, D, E, F, G)) -> (A, B, C, D, E, F, G)
clone
(
(A, B, C, D, E, F, G)
self
) {
56 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
) =
(A, B, C, D, E, F, G)
self
57 (
A
a
.
(A) -> A
clone
(),
B
b
.
(B) -> B
clone
(),
C
c
.
(C) -> C
clone
(),
D
d
.
(D) -> D
clone
(),
E
e
.
(E) -> E
clone
(),
F
f
.
(F) -> F
clone
(),
G
g
.
(G) -> G
clone
())
58} 59 60///| 61pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
62

type parameter A

A
,
63

type parameter B

B
,
64

type parameter C

C
,
65

type parameter D

D
,
66

type parameter E

E
,
67

type parameter F

F
,
68

type parameter G

G
,
69

type parameter H

H
,
70) with
(self : (A, B, C, D, E, F, G, H)) -> (A, B, C, D, E, F, G, H)
clone
(
(A, B, C, D, E, F, G, H)
self
) {
71 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
) =
(A, B, C, D, E, F, G, H)
self
72 ( 73
A
a
.
(A) -> A
clone
(),
74
B
b
.
(B) -> B
clone
(),
75
C
c
.
(C) -> C
clone
(),
76
D
d
.
(D) -> D
clone
(),
77
E
e
.
(E) -> E
clone
(),
78
F
f
.
(F) -> F
clone
(),
79
G
g
.
(G) -> G
clone
(),
80
H
h
.
(H) -> H
clone
(),
81 ) 82} 83 84///| 85pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
, I :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
86

type parameter A

A
,
87

type parameter B

B
,
88

type parameter C

C
,
89

type parameter D

D
,
90

type parameter E

E
,
91

type parameter F

F
,
92

type parameter G

G
,
93

type parameter H

H
,
94

type parameter I

I
,
95) with
(self : (A, B, C, D, E, F, G, H, I)) -> (A, B, C, D, E, F, G, H, I)
clone
(
(A, B, C, D, E, F, G, H, I)
self
) {
96 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
,
I
i
) =
(A, B, C, D, E, F, G, H, I)
self
97 ( 98
A
a
.
(A) -> A
clone
(),
99
B
b
.
(B) -> B
clone
(),
100
C
c
.
(C) -> C
clone
(),
101
D
d
.
(D) -> D
clone
(),
102
E
e
.
(E) -> E
clone
(),
103
F
f
.
(F) -> F
clone
(),
104
G
g
.
(G) -> G
clone
(),
105
H
h
.
(H) -> H
clone
(),
106
I
i
.
(I) -> I
clone
(),
107 ) 108} 109 110///| 111pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
, I :
trait Clone {
  clone(Self) -> Self
}
Clone
, J :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
112

type parameter A

A
,
113

type parameter B

B
,
114

type parameter C

C
,
115

type parameter D

D
,
116

type parameter E

E
,
117

type parameter F

F
,
118

type parameter G

G
,
119

type parameter H

H
,
120

type parameter I

I
,
121

type parameter J

J
,
122) with
(self : (A, B, C, D, E, F, G, H, I, J)) -> (A, B, C, D, E, F, G, H, I, J)
clone
(
(A, B, C, D, E, F, G, H, I, J)
self
) {
123 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
,
I
i
,
J
j
) =
(A, B, C, D, E, F, G, H, I, J)
self
124 ( 125
A
a
.
(A) -> A
clone
(),
126
B
b
.
(B) -> B
clone
(),
127
C
c
.
(C) -> C
clone
(),
128
D
d
.
(D) -> D
clone
(),
129
E
e
.
(E) -> E
clone
(),
130
F
f
.
(F) -> F
clone
(),
131
G
g
.
(G) -> G
clone
(),
132
H
h
.
(H) -> H
clone
(),
133
I
i
.
(I) -> I
clone
(),
134
J
j
.
(J) -> J
clone
(),
135 ) 136} 137 138///| 139pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
, I :
trait Clone {
  clone(Self) -> Self
}
Clone
, J :
trait Clone {
  clone(Self) -> Self
}
Clone
, K :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
140

type parameter A

A
,
141

type parameter B

B
,
142

type parameter C

C
,
143

type parameter D

D
,
144

type parameter E

E
,
145

type parameter F

F
,
146

type parameter G

G
,
147

type parameter H

H
,
148

type parameter I

I
,
149

type parameter J

J
,
150

type parameter K

K
,
151) with
(self : (A, B, C, D, E, F, G, H, I, J, K)) -> (A, B, C, D, E, F, G, H, I, J, K)
clone
(
(A, B, C, D, E, F, G, H, I, J, K)
self
) {
152 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
,
I
i
,
J
j
,
K
k
) =
(A, B, C, D, E, F, G, H, I, J, K)
self
153 ( 154
A
a
.
(A) -> A
clone
(),
155
B
b
.
(B) -> B
clone
(),
156
C
c
.
(C) -> C
clone
(),
157
D
d
.
(D) -> D
clone
(),
158
E
e
.
(E) -> E
clone
(),
159
F
f
.
(F) -> F
clone
(),
160
G
g
.
(G) -> G
clone
(),
161
H
h
.
(H) -> H
clone
(),
162
I
i
.
(I) -> I
clone
(),
163
J
j
.
(J) -> J
clone
(),
164
K
k
.
(K) -> K
clone
(),
165 ) 166} 167 168///| 169pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
, I :
trait Clone {
  clone(Self) -> Self
}
Clone
, J :
trait Clone {
  clone(Self) -> Self
}
Clone
, K :
trait Clone {
  clone(Self) -> Self
}
Clone
, L :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
170

type parameter A

A
,
171

type parameter B

B
,
172

type parameter C

C
,
173

type parameter D

D
,
174

type parameter E

E
,
175

type parameter F

F
,
176

type parameter G

G
,
177

type parameter H

H
,
178

type parameter I

I
,
179

type parameter J

J
,
180

type parameter K

K
,
181

type parameter L

L
,
182) with
(self : (A, B, C, D, E, F, G, H, I, J, K, L)) -> (A, B, C, D, E, F, G, H, I, J, K, L)
clone
(
(A, B, C, D, E, F, G, H, I, J, K, L)
self
) {
183 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
,
I
i
,
J
j
,
K
k
,
L
l
) =
(A, B, C, D, E, F, G, H, I, J, K, L)
self
184 ( 185
A
a
.
(A) -> A
clone
(),
186
B
b
.
(B) -> B
clone
(),
187
C
c
.
(C) -> C
clone
(),
188
D
d
.
(D) -> D
clone
(),
189
E
e
.
(E) -> E
clone
(),
190
F
f
.
(F) -> F
clone
(),
191
G
g
.
(G) -> G
clone
(),
192
H
h
.
(H) -> H
clone
(),
193
I
i
.
(I) -> I
clone
(),
194
J
j
.
(J) -> J
clone
(),
195
K
k
.
(K) -> K
clone
(),
196
L
l
.
(L) -> L
clone
(),
197 ) 198} 199 200///| 201pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
, I :
trait Clone {
  clone(Self) -> Self
}
Clone
, J :
trait Clone {
  clone(Self) -> Self
}
Clone
, K :
trait Clone {
  clone(Self) -> Self
}
Clone
, L :
trait Clone {
  clone(Self) -> Self
}
Clone
, M :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
202

type parameter A

A
,
203

type parameter B

B
,
204

type parameter C

C
,
205

type parameter D

D
,
206

type parameter E

E
,
207

type parameter F

F
,
208

type parameter G

G
,
209

type parameter H

H
,
210

type parameter I

I
,
211

type parameter J

J
,
212

type parameter K

K
,
213

type parameter L

L
,
214

type parameter M

M
,
215) with
(self : (A, B, C, D, E, F, G, H, I, J, K, L, M)) -> (A, B, C, D, E, F, G, H, I, J, K, L, M)
clone
(
(A, B, C, D, E, F, G, H, I, J, K, L, M)
self
) {
216 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
,
I
i
,
J
j
,
K
k
,
L
l
,
M
m
) =
(A, B, C, D, E, F, G, H, I, J, K, L, M)
self
217 ( 218
A
a
.
(A) -> A
clone
(),
219
B
b
.
(B) -> B
clone
(),
220
C
c
.
(C) -> C
clone
(),
221
D
d
.
(D) -> D
clone
(),
222
E
e
.
(E) -> E
clone
(),
223
F
f
.
(F) -> F
clone
(),
224
G
g
.
(G) -> G
clone
(),
225
H
h
.
(H) -> H
clone
(),
226
I
i
.
(I) -> I
clone
(),
227
J
j
.
(J) -> J
clone
(),
228
K
k
.
(K) -> K
clone
(),
229
L
l
.
(L) -> L
clone
(),
230
M
m
.
(M) -> M
clone
(),
231 ) 232} 233 234///| 235pub impl[A :
trait Clone {
  clone(Self) -> Self
}
Clone
, B :
trait Clone {
  clone(Self) -> Self
}
Clone
, C :
trait Clone {
  clone(Self) -> Self
}
Clone
, D :
trait Clone {
  clone(Self) -> Self
}
Clone
, E :
trait Clone {
  clone(Self) -> Self
}
Clone
, F :
trait Clone {
  clone(Self) -> Self
}
Clone
, G :
trait Clone {
  clone(Self) -> Self
}
Clone
, H :
trait Clone {
  clone(Self) -> Self
}
Clone
, I :
trait Clone {
  clone(Self) -> Self
}
Clone
, J :
trait Clone {
  clone(Self) -> Self
}
Clone
, K :
trait Clone {
  clone(Self) -> Self
}
Clone
, L :
trait Clone {
  clone(Self) -> Self
}
Clone
, M :
trait Clone {
  clone(Self) -> Self
}
Clone
, N :
trait Clone {
  clone(Self) -> Self
}
Clone
]
trait Clone {
  clone(Self) -> Self
}
Clone
for (
236

type parameter A

A
,
237

type parameter B

B
,
238

type parameter C

C
,
239

type parameter D

D
,
240

type parameter E

E
,
241

type parameter F

F
,
242

type parameter G

G
,
243

type parameter H

H
,
244

type parameter I

I
,
245

type parameter J

J
,
246

type parameter K

K
,
247

type parameter L

L
,
248

type parameter M

M
,
249

type parameter N

N
,
250) with
(self : (A, B, C, D, E, F, G, H, I, J, K, L, M, N)) -> (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
clone
(
(A, B, C, D, E, F, G, H, I, J, K, L, M, N)
self
) {
251 let (
A
a
,
B
b
,
C
c
,
D
d
,
E
e
,
F
f
,
G
g
,
H
h
,
I
i
,
J
j
,
K
k
,
L
l
,
M
m
,
N
n
) =
(A, B, C, D, E, F, G, H, I, J, K, L, M, N)
self
252 ( 253
A
a
.
(A) -> A
clone
(),
254
B
b
.
(B) -> B
clone
(),
255
C
c
.
(C) -> C
clone
(),
256
D
d
.
(D) -> D
clone
(),
257
E
e
.
(E) -> E
clone
(),
258
F
f
.
(F) -> F
clone
(),
259
G
g
.
(G) -> G
clone
(),
260
H
h
.
(H) -> H
clone
(),
261
I
i
.
(I) -> I
clone
(),
262
J
j
.
(J) -> J
clone
(),
263
K
k
.
(K) -> K
clone
(),
264
L
l
.
(L) -> L
clone
(),
265
M
m
.
(M) -> M
clone
(),
266
N
n
.
(N) -> N
clone
(),
267 ) 268} 269