abstract class A : HashMap<Boolean, Boolean>, SortedMap<Boolean, Boolean> {
  constructor() /* primary */ {
    super/*HashMap*/<Boolean, Boolean>()
    /* <init>() */

  }

}

abstract class B : HashMap<Boolean, Boolean>, SortedMap<Boolean, Boolean> {
  constructor() /* primary */ {
    super/*HashMap*/<Boolean, Boolean>()
    /* <init>() */

  }

  override fun put(key: Boolean, value: Boolean): Boolean? {
    return false
  }

  override fun remove(key: Boolean?): Boolean? {
    return false
  }

}

fun test(a: A, b: B) {
  a.<get-size>() /*~> Unit */
  a.set<Boolean, Boolean>(key = true, value = true)
  a.put(key = null, value = null) /*~> Unit */
  a.get(key = true) /*~> Unit */
  a.get(key = null) /*~> Unit */
  a.remove(key = null) /*~> Unit */
  a.remove(key = true) /*~> Unit */
  b.put(key = false, value = false) /*~> Unit */
  b.set<Boolean, Boolean>(key = true, value = true)
  b.remove(key = null) /*~> Unit */
}
