code: function describe(composer, trailing) {
  
    return function (method) {
  
      return new Descriptor(function (key, previousValues) {
  
        if ( method !== undefined)
          previousValues[trailing ? 'push' : 'unshift' ](method)
  
        //console.log(previousValues)
        return reduce(previousValues, function(merged, next, idx){
          return trailing
            ? composer(next, merged)
            : composer(merged, next)
        })
      })
    }
  }
docs: turns a normal decorator into a 'descriptor'
  @param  {function} composer
  @return {function}