@@ -27,7 +27,7 @@ object Test extends App {
27
27
given t2 [T ] as Functor [[U ] =>> (T , U )] {}
28
28
given t3 [T , U ] as Functor [[V ] =>> (T , U , V )] {}
29
29
30
- def derived [F [_]](using m : Mirror { type MirroredType = F ; type MirroredElemTypes [_] }, r : Functor [m.MirroredElemTypes ]): Functor [F ] = new Functor [F ] {}
30
+ def derived [F [_]](using m : Mirror { type MirroredType [ X ] = F [ X ] ; type MirroredElemTypes [_] }, r : Functor [m.MirroredElemTypes ]): Functor [F ] = new Functor [F ] {}
31
31
}
32
32
33
33
case class Mono (i : Int ) derives Functor
@@ -43,7 +43,7 @@ object Test extends App {
43
43
given [C ] as FunctorK [[F [_]] =>> C ] {}
44
44
given [T ] as FunctorK [[F [_]] =>> Tuple1 [F [T ]]]
45
45
46
- def derived [F [_[_]]](using m : Mirror { type MirroredType = F ; type MirroredElemTypes [_[_]] }, r : FunctorK [m.MirroredElemTypes ]): FunctorK [F ] = new FunctorK [F ] {}
46
+ def derived [F [_[_]]](using m : Mirror { type MirroredType [ X [_]] = F [ X ] ; type MirroredElemTypes [_[_]] }, r : FunctorK [m.MirroredElemTypes ]): FunctorK [F ] = new FunctorK [F ] {}
47
47
}
48
48
49
49
case class Mono (i : Int ) derives FunctorK
@@ -61,7 +61,7 @@ object Test extends App {
61
61
given t2 as Bifunctor [[T , U ] =>> (T , U )] {}
62
62
given t3 [T ] as Bifunctor [[U , V ] =>> (T , U , V )] {}
63
63
64
- def derived [F [_, _]](using m : Mirror { type MirroredType = F ; type MirroredElemTypes [_, _] }, r : Bifunctor [m.MirroredElemTypes ]): Bifunctor [F ] = ???
64
+ def derived [F [_, _]](using m : Mirror { type MirroredType [ X , Y ] = F [ X , Y ] ; type MirroredElemTypes [_, _] }, r : Bifunctor [m.MirroredElemTypes ]): Bifunctor [F ] = ???
65
65
}
66
66
67
67
case class Mono (i : Int ) derives Bifunctor
0 commit comments