lib/occamsrazor.js
function stick () {
    var context = this
    var args = ut.getArgs(arguments)
    var filteredAdapters = ut.filterAndSort(args, _adapters)
    var consumeAdapters = filteredAdapters.filter(function (adapter) { return adapter.doesConsume })
    // adapters published with "consume" trigger the removal of the registered event
    if (!consumeAdapters.length) {
      ut.binaryInsert(_events, { context: this, args: args }, comparator)
    }
    filteredAdapters.forEach(ut.countdown)
    ut.filterArray(_adapters, ut.notExausted)
    ut.triggerAll(context, args, filteredAdapters)
    return or
  }
function stick () {
    var context = this
    var args = ut.getArgs(arguments)
    var filteredAdapters = ut.filterAndSort(args, _adapters)
    var consumeAdapters = filteredAdapters.filter(function (adapter) { return adapter.doesConsume })
    // adapters published with "consume" trigger the removal of the registered event
    if (!consumeAdapters.length) {
      ut.binaryInsert(_events, { context: this, args: args }, comparator)
    }
    filteredAdapters.forEach(ut.countdown)
    ut.filterArray(_adapters, ut.notExausted)
    ut.triggerAll(context, args, filteredAdapters)
    return or
  }
/* this function is posting an event: context "this" and arguments