abstract class A : SequencedMap<Any, Any> {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

abstract class B : SequencedMap<Any, Any> {
  override val size: Int
    field = size
    override get

  constructor(size: Int) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun firstEntry(): MutableEntry<Any, Any> {
    return CHECK_NOT_NULL<Nothing>(arg0 = null)
  }

  override fun pollFirstEntry(): MutableEntry<Any, Any> {
    return CHECK_NOT_NULL<Nothing>(arg0 = null)
  }

  override fun putFirst(k: Any?, v: Any?): Any {
    return ""
  }

  override fun reversed(): SequencedMap<Any, Any> {
    return CHECK_NOT_NULL<Nothing>(arg0 = null)
  }

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

}

fun test(a: A, b: B) {
  a.putFirst(p0 = 1, p1 = null) /*~> Unit */
  a.firstEntry() /*~> Unit */
  a.putLast(p0 = null, p1 = 2) /*~> Unit */
  a.lastEntry() /*~> Unit */
  a.pollFirstEntry() /*~> Unit */
  a.reversed() /*~> Unit */
  a.sequencedKeySet() /*~> Unit */
  b.putFirst(k = 1, v = null) /*~> Unit */
  b.firstEntry() /*~> Unit */
  b.putLast(p0 = null, p1 = 2) /*~> Unit */
  b.lastEntry() /*~> Unit */
  b.pollFirstEntry() /*~> Unit */
  b.reversed() /*~> Unit */
  b.sequencedKeySet() /*~> Unit */
}
