docs: function explode(cells) {
    var result = []
    for(var i=0, il=cells.length; i<il; ++i) {
      var c = cells[i]
        , cl = c.length|0
      for(var j=1, jl=(1<<cl); j<jl; ++j) {
        var b = []
        for(var k=0; k<cl; ++k) {
          if((j >>> k) & 1) {
            b.push(c[k])
          }
        }
        result.push(b)
      }
    }
    return normalize(result)
  }