interface NumberOperations {
  abstract fun Number.plus(other: Number): Number

}

class Matrix {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

fun Matrix.plus(<this>: NumberOperations, other: Matrix): Matrix {
  return TODO()
}

fun NumberOperations.plusMatrix(m1: Matrix, m2: Matrix) {
  m1.plus(<this> = <this>, other = m2) /*~> Unit */
  m2.plus(<this> = <this>, other = m1) /*~> Unit */
}
