class FinalList : SomeList { constructor() /* primary */ { super/*SomeList*/() /* () */ } } data class Some { val value: T field = value get constructor(value: T) /* primary */ { super/*Any*/() /* () */ } operator fun component1(): T { return .#value } fun copy(value: T = .#value): Some { return Some(value = value) } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is Some -> return false } val tmp_0: Some = other as Some when { EQEQ(arg0 = .#value, arg1 = tmp_0.#value).not() -> return false } return true } override fun hashCode(): Int { return when { EQEQ(arg0 = .#value, arg1 = null) -> 0 else -> .#value.hashCode() } } override fun toString(): String { return "Some(" + "value=" + .#value + ")" } } open class SomeList : ArrayList>, MyList { constructor() /* primary */ { super/*ArrayList*/<@FlexibleNullability Some?>() /* () */ } } interface MyList : List> { }