1
2
3
4
5 package p
6
7
8
9 type transform[T any] struct{}
10 type pair[S any] struct {}
11
12 var _ transform[step]
13
14 type box transform[step]
15 type step = pair[box]
16
17
18
19 type Transform[T any] struct{ hold T }
20 type Pair[S, T any] struct {
21 First S
22 Second T
23 }
24
25 var first Transform[Step]
26
27
28 var second Transform[Pair[Box, interface{}]]
29
30 type Box *Transform[Step]
31
32
33
34 var third Transform[Step]
35
36 type Step = Pair[Box, interface{}]
37
38
39 var fourth Transform[Step]
40
View as plain text