abstract class A : HashSet<Int>, SequencedSet<Int> {
  constructor() /* primary */ {
    super/*HashSet*/<@FlexibleNullability Int?>()
    /* <init>() */

  }

  override fun spliterator(): Spliterator<Int> {
    return CHECK_NOT_NULL<Nothing>(arg0 = null)
  }

}

class B : HashSet<Int>, SequencedSet<Int> {
  constructor() /* primary */ {
    super/*HashSet*/<@FlexibleNullability Int?>()
    /* <init>() */

  }

  override fun reversed(): SequencedSet<Int> {
    return CHECK_NOT_NULL<Nothing>(arg0 = null)
  }

  override fun spliterator(): Spliterator<Int> {
    return CHECK_NOT_NULL<Nothing>(arg0 = null)
  }

}

fun test(a: A, b: B) {
  a.<get-size>() /*~> Unit */
  a.addFirst(p0 = null)
  a.reversed() /*~> Unit */
  b.reversed() /*~> Unit */
  b.addFirst(p0 = 1)
}
