code: function contract (a, i, j, k) { // merge a[..i..j..]
    var c = []
    if (k === i) {
      for (let ai = 0; ai < a.length; ai++) {
        c.push(contract2(a[ai], j, ai, k + 1))
      }
      return j6.colSum(c)
    } else {
      for (let ai = 0; ai < a.length; ai++) {
        c.push(contract(a[ai], i, j, k + 1))
      }
    }
    return c
  }
docs: b = [[1,2],[3,4]]; a = [[1,0],[0,1]]; ab=[[b,0],      ab[0=1] = [b+b] = [2b] = [[2,4],[6,8]] [0,b]]