@@ -27,7 +27,7 @@ object Test extends App {
2727 given t2 [T ] as Functor [[U ] =>> (T , U )] {}
2828 given t3 [T , U ] as Functor [[V ] =>> (T , U , V )] {}
2929
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 ] {}
3131 }
3232
3333 case class Mono (i : Int ) derives Functor
@@ -43,7 +43,7 @@ object Test extends App {
4343 given [C ] as FunctorK [[F [_]] =>> C ] {}
4444 given [T ] as FunctorK [[F [_]] =>> Tuple1 [F [T ]]]
4545
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 ] {}
4747 }
4848
4949 case class Mono (i : Int ) derives FunctorK
@@ -61,7 +61,7 @@ object Test extends App {
6161 given t2 as Bifunctor [[T , U ] =>> (T , U )] {}
6262 given t3 [T ] as Bifunctor [[U , V ] =>> (T , U , V )] {}
6363
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 ] = ???
6565 }
6666
6767 case class Mono (i : Int ) derives Bifunctor
0 commit comments