fellshard
06/20/2016, 8:45 PMinterface 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)
}