@@ -11,150 +11,21 @@ trait MakesSequentialStream[A, SS <: java.util.stream.BaseStream[A, SS]] extends
1111}
1212
1313/** 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 {
1515 def parStream : SS
1616}
1717
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
2221}
2322
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
2826}
2927
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
16031}
0 commit comments