private def diagonalize[T](f: Int => T): PartialFunction[(Int, Int), T] = { case (i, j) if i == j => f(i) }