// CHECK: // Mangled name: Monoid // Public signature: /Monoid|null[0] interface Monoid : Semigroup { // CHECK JVM_IR: // Mangled name: Monoid#combine@1:0(1:0){}1:0 // Public signature: /Monoid.combine|-3517256775590682507[0] // Public signature debug description: combine@1:0(1:0){}1:0 // CHECK JS_IR NATIVE: // Mangled name: Monoid#combine@1:0(1:0){} // Public signature: /Monoid.combine|8412967464389689937[0] // Public signature debug description: combine@1:0(1:0){} abstract /* fake */ override infix fun T.combine(other: T): T // CHECK: // Mangled name: Monoid{}unit // Public signature: /Monoid.unit|-5200734743185576787[0] // Public signature debug description: {}unit abstract val unit: T // CHECK JVM_IR: // Mangled name: Monoid#(){}1:0 // Public signature: /Monoid.unit.|-2842189358620964971[0] // Public signature debug description: (){}1:0 // CHECK JS_IR NATIVE: // Mangled name: Monoid#(){} // Public signature: /Monoid.unit.|1530864625432111105[0] // Public signature debug description: (){} abstract get } // CHECK: // Mangled name: Semigroup // Public signature: /Semigroup|null[0] interface Semigroup { // CHECK JVM_IR: // Mangled name: Semigroup#combine@1:0(1:0){}1:0 // Public signature: /Semigroup.combine|-3517256775590682507[0] // Public signature debug description: combine@1:0(1:0){}1:0 // CHECK JS_IR NATIVE: // Mangled name: Semigroup#combine@1:0(1:0){} // Public signature: /Semigroup.combine|8412967464389689937[0] // Public signature debug description: combine@1:0(1:0){} abstract infix fun T.combine(other: T): T } // CHECK: // Mangled name: IntMonoid // Public signature: /IntMonoid|null[0] object IntMonoid : Monoid { // CHECK: // Mangled name: IntMonoid{}unit // Public signature: /IntMonoid.unit|-5200734743185576787[0] // Public signature debug description: {}unit override val unit: Int // CHECK JVM_IR: // Mangled name: IntMonoid#(){}kotlin.Int // Public signature: /IntMonoid.unit.|3772729924213749256[0] // Public signature debug description: (){}kotlin.Int // CHECK JS_IR NATIVE: // Mangled name: IntMonoid#(){} // Public signature: /IntMonoid.unit.|1530864625432111105[0] // Public signature debug description: (){} override get // CHECK: // Mangled name: IntMonoid#(){} // Public signature: /IntMonoid.|-5645683436151566731[0] // Public signature debug description: (){} private constructor() /* primary */ // CHECK JVM_IR: // Mangled name: IntMonoid#combine@kotlin.Int(kotlin.Int){}kotlin.Int // Public signature: /IntMonoid.combine|4765448259581317405[0] // Public signature debug description: combine@kotlin.Int(kotlin.Int){}kotlin.Int // CHECK JS_IR NATIVE: // Mangled name: IntMonoid#combine@kotlin.Int(kotlin.Int){} // Public signature: /IntMonoid.combine|4429091503069708823[0] // Public signature debug description: combine@kotlin.Int(kotlin.Int){} override infix fun Int.combine(other: Int): Int } // CHECK: // Mangled name: StringMonoid // Public signature: /StringMonoid|null[0] object StringMonoid : Monoid { // CHECK: // Mangled name: StringMonoid{}unit // Public signature: /StringMonoid.unit|-5200734743185576787[0] // Public signature debug description: {}unit override val unit: String // CHECK JVM_IR: // Mangled name: StringMonoid#(){}kotlin.String // Public signature: /StringMonoid.unit.|4504480110251605077[0] // Public signature debug description: (){}kotlin.String // CHECK JS_IR NATIVE: // Mangled name: StringMonoid#(){} // Public signature: /StringMonoid.unit.|1530864625432111105[0] // Public signature debug description: (){} override get // CHECK: // Mangled name: StringMonoid#(){} // Public signature: /StringMonoid.|-5645683436151566731[0] // Public signature debug description: (){} private constructor() /* primary */ // CHECK JVM_IR: // Mangled name: StringMonoid#combine@kotlin.String(kotlin.String){}kotlin.String // Public signature: /StringMonoid.combine|-5815259829474546918[0] // Public signature debug description: combine@kotlin.String(kotlin.String){}kotlin.String // CHECK JS_IR NATIVE: // Mangled name: StringMonoid#combine@kotlin.String(kotlin.String){} // Public signature: /StringMonoid.combine|-2748332935123183663[0] // Public signature debug description: combine@kotlin.String(kotlin.String){} override infix fun String.combine(other: String): String } // CHECK JVM_IR: // Mangled name: #box(){}kotlin.String // Public signature: /box|-9347091776561469[0] // Public signature debug description: box(){}kotlin.String // CHECK JS_IR NATIVE: // Mangled name: #box(){} // Public signature: /box|2173511048851971368[0] // Public signature debug description: box(){} fun box(): String // CHECK JVM_IR: // Mangled name: #sum!Monoid<0:0>@kotlin.collections.List<0:0>(){0§}0:0 // Public signature: /sum|7635142307973834922[0] // Public signature debug description: sum!Monoid<0:0>@kotlin.collections.List<0:0>(){0§}0:0 // CHECK JS_IR NATIVE: // Mangled name: #sum!Monoid<0:0>@kotlin.collections.List<0:0>(){0§} // Public signature: /sum|6490726678726957775[0] // Public signature debug description: sum!Monoid<0:0>@kotlin.collections.List<0:0>(){0§} fun List.sum($context_receiver_0: Monoid): T