code: function prefix (a, b) {
    if(a.length > b.length) return false
    var l = a.length - 1
    var lastA = a[l]
    var lastB = b[l]
  
    if(typeof lastA !== typeof lastB)
      return false
  
    if('string' == typeof lastA
      && 0 != lastB.indexOf(lastA))
        return false
    
    //handle cas where there is no key prefix
    //(a hook on an entire sublevel)
    if(a.length == 1 && isArrayLike(lastA)) l ++
    
    while(l--) {
      if(compare(a[l], b[l])) return false
    }
    return true
  }
docs: this assumes that the prefix is of the form: [Array, string]