code: function raco (genFn, opts) {
      if (!isGeneratorFunction(genFn)) {
        if (isFunction(genFn)) throw new Error('Generator function required')
        else if (!isGenerator(genFn)) return factory(genFn)
      }
      opts = Object.assign({}, _opts, opts)
      opts.Promise = null
      return _raco.call(this, genFn, null, null, opts)
    }
docs: raco resolver
  returns factory if no arguments
  
  @param {function} genFn - generator function or factory options
  @param {object} [opts] - options object
  @returns {promise} if no callback provided