Eugenio
07/22/2018, 12:44 PMKind
hierarchy, only to find that the "id" is NOT of the right type, and there's no link to the real typepakoito
07/22/2018, 12:44 PMEugenio
07/22/2018, 12:44 PMEugenio
07/22/2018, 12:44 PMEugenio
07/22/2018, 12:45 PMEugenio
07/22/2018, 12:45 PMEugenio
07/22/2018, 12:45 PMpakoito
07/22/2018, 12:45 PMEugenio
07/22/2018, 12:46 PMabstract class KindId(val forType: KClass<out Kind<*, *>>) : KindOrId()
Eugenio
07/22/2018, 12:47 PMprivate
, so that we could strip it at runtimeEugenio
07/22/2018, 12:48 PMEugenio
07/22/2018, 12:48 PMEugenio
07/22/2018, 12:49 PMobject ForEither : KindId(Either::class)
it woud be
object ForEither : KindId<Either<*,*>>()
Eugenio
07/22/2018, 12:49 PM::class
is a nice trick to avoid having to specify generic type argspakoito
07/22/2018, 12:50 PMpakoito
07/22/2018, 12:51 PMEugenio
07/22/2018, 12:52 PMEugenio
07/22/2018, 12:52 PMEugenio
07/22/2018, 12:54 PM@instanceExtensions
annotations, say that I find this:
@instanceExtensions
interface EitherFunctorInstance<L> : Functor<EitherPartialOf<L>> { ... }
Eugenio
07/22/2018, 12:54 PMFunctor<EitherPartialOf<L>>
to Either
, somehowEugenio
07/22/2018, 12:56 PMEitherPartialOf<L>
-> Kind<ForEither, A>
• I look at ForEither
-> ForEither : KindId(Either::class)
-> Either
💥pakoito
07/22/2018, 12:57 PMpakoito
07/22/2018, 12:57 PMpakoito
07/22/2018, 12:57 PMpakoito
07/22/2018, 12:57 PMpakoito
07/22/2018, 12:58 PMKind2<ForEither, L, R>
pakoito
07/22/2018, 12:58 PMEitherOf<L, R>
pakoito
07/22/2018, 12:58 PMpakoito
07/22/2018, 12:59 PM