@@ -11,150 +11,21 @@ trait MakesSequentialStream[A, SS <: java.util.stream.BaseStream[A, SS]] extends
11
11
}
12
12
13
13
/** Classes or objects implementing this trait create streams suitable for parallel use */
14
- trait MakesParallelStream [A , SS <: java.util.stream.BaseStream [A , SS ]] extends Any with MakesSequentialStream [ A , SS ] {
14
+ trait MakesParallelStream [A , SS <: java.util.stream.BaseStream [A , SS ]] extends Any {
15
15
def parStream : SS
16
16
}
17
17
18
- /** Classes or objects implementing this trait create generic steppers suitable for sequential use. */
19
- trait MakesAnySeqStepper [A ] extends Any {
20
- /** Generates a fresh stepper over `A`s suitable for sequential use */
21
- def stepper : AnyStepper [A ]
18
+ trait MakesStepper [+ T <: Stepper [_]] extends Any {
19
+ /** Generates a fresh stepper of type `T` */
20
+ def stepper : T
22
21
}
23
22
24
- /** Classes or objects implementing this trait create generic steppers for map keys suitable for sequential use. */
25
- trait MakesAnyKeySeqStepper [A ] extends Any {
26
- /** Generates a fresh stepper over map keys of type `A` suitable for sequential use */
27
- def keyStepper : AnyStepper [A ]
23
+ trait MakesKeyStepper [+ T <: Stepper [_]] extends Any {
24
+ /** Generates a fresh stepper of type `T` over map keys */
25
+ def keyStepper : T
28
26
}
29
27
30
- /** Classes or objects implementing this trait create generic steppers for map values suitable for sequential use. */
31
- trait MakesAnyValueSeqStepper [A ] extends Any {
32
- /** Generates a fresh stepper over map values of type `A` suitable for sequential use */
33
- def valueStepper : AnyStepper [A ]
34
- }
35
-
36
- /** Classes or objects implementing this trait create `Double` steppers suitable for sequential use. */
37
- trait MakesDoubleSeqStepper extends Any {
38
- /** Generates a fresh stepper over `Double`s suitable for sequential use */
39
- def stepper : DoubleStepper
40
- }
41
-
42
- /** Classes or objects implementing this trait create `Double` steppers for map keys suitable for sequential use. */
43
- trait MakesDoubleKeySeqStepper extends Any {
44
- /** Generates a fresh stepper over map keys of type `Double` suitable for sequential use */
45
- def keyStepper : DoubleStepper
46
- }
47
-
48
- /** Classes or objects implementing this trait create `Double` steppers for map values suitable for sequential use. */
49
- trait MakesDoubleValueSeqStepper extends Any {
50
- /** Generates a fresh stepper over map values of type `Double` suitable for sequential use */
51
- def valueStepper : DoubleStepper
52
- }
53
-
54
- /** Classes or objects implementing this trait create `Int` steppers suitable for sequential use. */
55
- trait MakesIntSeqStepper extends Any {
56
- /** Generates a fresh stepper over `Int`s suitable for sequential use */
57
- def stepper : IntStepper
58
- }
59
-
60
- /** Classes or objects implementing this trait create `Int` steppers for map keys suitable for sequential use. */
61
- trait MakesIntKeySeqStepper extends Any {
62
- /** Generates a fresh stepper over map keys of type `Int` suitable for sequential use */
63
- def keyStepper : IntStepper
64
- }
65
-
66
- /** Classes or objects implementing this trait create `Int` steppers for map values suitable for sequential use. */
67
- trait MakesIntValueSeqStepper extends Any {
68
- /** Generates a fresh stepper over map values of type `Int` suitable for sequential use */
69
- def valueStepper : IntStepper
70
- }
71
-
72
- /** Classes or objects implementing this trait create `Long` steppers suitable for sequential use. */
73
- trait MakesLongSeqStepper extends Any {
74
- /** Generates a fresh stepper over `Long`s suitable for sequential use */
75
- def stepper : LongStepper
76
- }
77
-
78
- /** Classes or objects implementing this trait create `Long` steppers for map keys suitable for sequential use. */
79
- trait MakesLongKeySeqStepper extends Any {
80
- /** Generates a fresh stepper over map keys of type `Long` suitable for sequential use */
81
- def keyStepper : LongStepper
82
- }
83
-
84
- /** Classes or objects implementing this trait create `Long` steppers for map values suitable for sequential use. */
85
- trait MakesLongValueSeqStepper extends Any {
86
- /** Generates a fresh stepper over map values of type `Long` suitable for sequential use */
87
- def valueStepper : LongStepper
88
- }
89
-
90
- /** Classes or objects implementing this trait create generic steppers suitable for sequential or parallel use. */
91
- trait MakesAnyStepper [A ] extends Any {
92
- /** Generates a fresh stepper over `A`s that can be efficiently subdivided */
93
- def stepper : AnyStepper [A ] with EfficientSubstep
94
- }
95
-
96
- /** Classes or objects implementing this trait create generic steppers for map keys suitable for sequential or parallel use. */
97
- trait MakesAnyKeyStepper [A ] extends Any {
98
- /** Generates a fresh stepper over map keys of type `A` that can be efficiently subdivided */
99
- def keyStepper : AnyStepper [A ] with EfficientSubstep
100
- }
101
-
102
- /** Classes or objects implementing this trait create generic steppers for map values suitable for sequential or parallel use. */
103
- trait MakesAnyValueStepper [A ] extends Any {
104
- /** Generates a fresh stepper over map values of type `A` that can be efficiently subdivided */
105
- def valueStepper : AnyStepper [A ] with EfficientSubstep
106
- }
107
-
108
- /** Classes or objects implementing this trait create `Double` steppers suitable for sequential or parallel use. */
109
- trait MakesDoubleStepper extends Any {
110
- /** Generates a fresh stepper over `Double`s that can be efficiently subdivided */
111
- def stepper : DoubleStepper with EfficientSubstep
112
- }
113
-
114
- /** Classes or objects implementing this trait create `Double` steppers for map keys suitable for sequential or parallel use. */
115
- trait MakesDoubleKeyStepper extends Any {
116
- /** Generates a fresh stepper over map keys of type `Double` that can be efficiently subdivided */
117
- def keyStepper : DoubleStepper with EfficientSubstep
118
- }
119
-
120
- /** Classes or objects implementing this trait create `Double` steppers for map values suitable for sequential or parallel use. */
121
- trait MakesDoubleValueStepper extends Any {
122
- /** Generates a fresh stepper over map values of type `Double` that can be efficiently subdivided */
123
- def valueStepper : DoubleStepper with EfficientSubstep
124
- }
125
-
126
- /** Classes or objects implementing this trait create `Int` steppers suitable for sequential or parallel use. */
127
- trait MakesIntStepper extends Any {
128
- /** Generates a fresh stepper over `Int`s that can be efficiently subdivided */
129
- def stepper : IntStepper with EfficientSubstep
130
- }
131
-
132
- /** Classes or objects implementing this trait create `Int` steppers for map keys suitable for sequential or parallel use. */
133
- trait MakesIntKeyStepper extends Any {
134
- /** Generates a fresh stepper over map keys of type `Int` that can be efficiently subdivided */
135
- def keyStepper : IntStepper with EfficientSubstep
136
- }
137
-
138
- /** Classes or objects implementing this trait create `Int` steppers for map values suitable for sequential or parallel use. */
139
- trait MakesIntValueStepper extends Any {
140
- /** Generates a fresh stepper over map values of type `Int` that can be efficiently subdivided */
141
- def valueStepper : IntStepper with EfficientSubstep
142
- }
143
-
144
- /** Classes or objects implementing this trait create `Long` steppers suitable for sequential or parallel use. */
145
- trait MakesLongStepper extends Any {
146
- /** Generates a fresh stepper over `Long`s that can be efficiently subdivided */
147
- def stepper : LongStepper with EfficientSubstep
148
- }
149
-
150
- /** Classes or objects implementing this trait create `Long` steppers for map keys suitable for sequential or parallel use. */
151
- trait MakesLongKeyStepper extends Any {
152
- /** Generates a fresh stepper over map keys of type `Long` that can be efficiently subdivided */
153
- def keyStepper : LongStepper with EfficientSubstep
154
- }
155
-
156
- /** Classes or objects implementing this trait create `Long` steppers for map values suitable for sequential or parallel use. */
157
- trait MakesLongValueStepper extends Any {
158
- /** Generates a fresh stepper over map values of type `Long` that can be efficiently subdivided */
159
- def valueStepper : LongStepper with EfficientSubstep
28
+ trait MakesValueStepper [+ T <: Stepper [_]] extends Any {
29
+ /** Generates a fresh stepper of type `T` over map values */
30
+ def valueStepper : T
160
31
}
0 commit comments