larsrh on master
Update kind-projector to 0.11.3 Merge pull request #187 from sc… (compare)
larsrh on master
Update sbt to 1.4.6 Merge pull request #186 from sc… (compare)
joroKr21 on master
Update discipline-scalatest to … (compare)
joroKr21 on master
Update cats-core, cats-free, ca… (compare)
joroKr21 on master
Update sbt to 1.4.5 (#183) (compare)
implicit def stream[A]: FunctorK[({type L[F[_]] = Stream[F, A]})#L] = new FunctorK[({type L[F[_]] = Stream[F, A]})#L] {
def mapK[F[_], G[_]](af: Stream[F, A])(fk: F ~> G): Stream[G, A] = af.translate(fk)
}
Hmm weird. I've got an interface PostgresRepos
which is a collection of repositories:
trait PostgresRepos[F[_]] {
def depots: DepotRepository[F]
def tours: TourRepository[F]
}
this works:
def weaveTraceData[F[_]](alg: PostgresRepos[F]): PostgresRepos[Aspect.Weave.Codomain[F, TraceData, *]] =
new PostgresRepos[Codomain[F, TraceData, *]] {
def depots: DepotRepository[Codomain[F, TraceData, *]] = Derive.aspect.weave(alg.depots)
def tours: TourRepository[Codomain[F, TraceData, *]] = Derive.aspect.weave(alg.tours)
}
This doesn't:
def weaveTraceData[F[_]](alg: PostgresRepos[F]): PostgresRepos[Aspect.Weave.Codomain[F, TraceData, *]] =
Derive.aspect.weave(alg)
It bails on Type parameter F can only occur as a top level return type in method tours
When I flip the tours and depots line in my interface of PostgresRepos
it complains about depots
Derive.functorK
(all derivations are available in that object)
Cannot expand @autoFunctorK
with Scala 2.13.4, clearly something in my setup is messed up, anyone any ideas what it could be?
"org.typelevel" %% "cats-tagless-macros" % "0.12"
-Ymacro-annotations
FunctorK
... would it be fairly symmetrical?
Bifunctor
being something like F[_, _]
, and a BifunctorK
being for algebra types of the form A[ _[_, _]]
,mapK[G[_, _]](fk: F ~> G)
...