Jacek Modrakowski
02/11/2018, 8:03 PMError:(13, 39) Kotlin: Unresolved reference: Companion
raulraja
02/11/2018, 8:04 PMcompanion object {}
raulraja
02/11/2018, 8:04 PMraulraja
02/11/2018, 8:05 PMJacek Modrakowski
02/11/2018, 8:06 PMJacek Modrakowski
02/11/2018, 8:06 PMJacek Modrakowski
02/11/2018, 8:08 PM@instance(User::class)
interface UserEqInstance : Eq<User> {
override fun eqv(a: User, b: User): Boolean = a == b
}
2. And model that we've created typeclass for should include empty companion companion object
to unlock ability for companion's object extensions functions?pakoito
02/11/2018, 8:10 PMJacek Modrakowski
02/11/2018, 8:11 PMCompanion
is like a bridge to connect our domain model with typeclass instance generated (UserEqInstanceImplicits.instance()) based on our custom UserEqInstance
declaration. I'm right?Jacek Modrakowski
02/11/2018, 8:15 PMraulraja
02/11/2018, 8:18 PMUser.eq()
which points to the instance. Same for other type classes that is why you find Option.monad()
for example, those are typeclasses as wellraulraja
02/11/2018, 8:19 PMJacek Modrakowski
02/11/2018, 8:58 PMJacek Modrakowski
02/11/2018, 8:59 PMval u1 = User(...)
val u2 = User(...)
val sameUsers = u1.eqv(b = u2)
Jacek Modrakowski
02/11/2018, 9:03 PMeq<User>().eqv(u1, u2)
simon.vergauwen
02/11/2018, 9:14 PMJacek Modrakowski
02/11/2018, 9:16 PMdcampogiani
02/11/2018, 9:56 PMraulraja
02/11/2018, 9:57 PMdcampogiani
02/11/2018, 9:57 PMdcampogiani
02/11/2018, 9:58 PMraulraja
02/11/2018, 9:58 PMraulraja
02/11/2018, 9:58 PMdcampogiani
02/11/2018, 9:59 PMdcampogiani
02/11/2018, 9:59 PMraulraja
02/11/2018, 10:00 PMjacob
02/12/2018, 8:54 AMjacob
02/12/2018, 8:54 AMpguardiola
02/12/2018, 9:28 AM