Let's take an adaptation of your example. ``` int...
# language-proposals
f
Let's take an adaptation of your example.
Copy code
interface Monoid<T> {
    fun zero() : T
    fun append(other: T) : T
}

class StringMonoid(s: String) : String by s, Monoid<String> {
    override fun zero() = StringMonoid("")  // Hmm, this might be problematic...
    override fun append(other: String) = StringMonoid(s + other)
}