<@U0B8UEMV1> another question (unless you want to ...
# arrow-contributors
e
@pakoito another question (unless you want to rest today 😁) : how bad would it be if we changed slightly the way `Kind`s are defined? from:
Copy code
interface Kind<out F, out A>

class ForEither private constructor() { companion object }

@higherkind
sealed class Either<out A, out B> : EitherOf<A, B> {
to:
Copy code
sealed class KindOrId
abstract class KindId(val forType: KClass<out Kind<*, *>>) : KindOrId()
open class Kind<out F: KindOrId, out A> : KindOrId()

object ForEither : KindId(Either::class)

@higherkind
sealed class Either<out A, out B> : EitherOf<A, B>() {