interface Source { fun nextT(): T } fun demo(strs: Source) { val objects: Source = strs } interface Comparable { operator fun compareTo(other: T): Int } fun demo(x: Comparable) { x.compareTo(1.0) val y: Comparable = x }