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