1
1
package scala
2
2
3
+ import language .experimental .captureChecking
3
4
import annotation .showAsInfix
4
5
import compiletime .*
5
6
import compiletime .ops .int .*
@@ -174,13 +175,13 @@ object Tuple {
174
175
case h *: t => F [h, Fold [t, Z , F ]]
175
176
176
177
/** Converts a tuple `(T1, ..., Tn)` to `(F[T1], ..., F[Tn])` */
177
- type Map [Tup <: Tuple , F [_ <: Union [ Tup ] ]] <: Tuple = Tup match {
178
+ type Map [Tup <: Tuple , F [_]] <: Tuple = Tup match {
178
179
case EmptyTuple => EmptyTuple
179
180
case h *: t => F [h] *: Map [t, F ]
180
181
}
181
182
182
183
/** Converts a tuple `(T1, ..., Tn)` to a flattened `(..F[T1], ..., ..F[Tn])` */
183
- type FlatMap [Tup <: Tuple , F [_ <: Union [ Tup ] ] <: Tuple ] <: Tuple = Tup match {
184
+ type FlatMap [Tup <: Tuple , F [_] <: Tuple ] <: Tuple = Tup match {
184
185
case EmptyTuple => EmptyTuple
185
186
case h *: t => Concat [F [h], FlatMap [t, F ]]
186
187
}
@@ -196,7 +197,7 @@ object Tuple {
196
197
* ```
197
198
* @syntax markdown
198
199
*/
199
- type Filter [Tup <: Tuple , P [_ <: Union [ Tup ] ] <: Boolean ] <: Tuple = Tup match {
200
+ type Filter [Tup <: Tuple , P [_] <: Boolean ] <: Tuple = Tup match {
200
201
case EmptyTuple => EmptyTuple
201
202
case h *: t => P [h] match {
202
203
case true => h *: Filter [t, P ]
0 commit comments