code: function gen(providedScope, baseOptions) {
  
    // holds the created instance.
    var theUse
  
    // NOTE:
    //  using their object instead of grabbing each property individually for
    //  an object we create here because I want to allow them to put anything
    //  into the `scope` object they provide so it'll be available to them.
  
    // if no scope is provided then create one.
    var scope = providedScope || {}
  
    // ensure we have the usuals available in the scope.
    scope.require = scope.require || require
    scope.load    = scope.load    || load
    scope.combine = scope.combine || combine
    scope.use     = scope.use     || use
    scope.inTwos  = scope.inTwos  || inTwos
    scope.withOptions = scope.withOptions || withOptions
  
    // lastly, wrap this in the "inTwos" helper which smartly handles arrays of
    // plugins and options and passes them in as pairs, or as a single plugin
    // without options.
    // NOTE: the first arg is `this` which is the object we're attached to.
    theUse = scope.inTwos(function(plugin, options) {
      return scope.use(this, scope, plugin, scope.combine(baseOptions, options))
    })
  
    //
    // NOTE: the first arg is `scope`, not `this` as it is above because this
    // use() affects the @use/core instance: thing.use.use(...)
    theUse.use = scope.inTwos(function(plugin, options) {
      return scope.use(scope, scope, plugin, scope.combine(baseOptions, options))
    })
  
    // allow creating a new instance with new `defaultOptions`.
    theUse.withOptions = function(defaultOptions) {
      return scope.withOptions(scope, scope.combine(baseOptions, defaultOptions))
    }
  
    return theUse
  }
docs: creates a @use/core instance with provided scope and baseOptions.