code: function boxIntersectWrapper(arg0, arg1, arg2) {
    var result
    switch(arguments.length) {
      case 1:
        return intersectFullArray(arg0)
      case 2:
        if(typeof arg1 === 'function') {
          return boxIntersect(arg0, arg0, arg1, true)
        } else {
          return intersectBipartiteArray(arg0, arg1)
        }
      case 3:
        return boxIntersect(arg0, arg1, arg2, false)
      default:
        throw new Error('box-intersect: Invalid arguments')
    }
  }
docs: User-friendly wrapper, handle full input and no-visitor cases