code: function createFactory() {
      return function Stamp(options) {
        var i = Stamp[_compose] || {};
        // Next line was optimized for most JS VMs. Please, be careful here!
        var obj = {__proto__: i[_methods]};
  
        var inits = i[_initializers], args = slice.apply(arguments);
        var initializer, returnedValue;
  
        var tmp = i[_deepProperties];
        if (tmp) merge(obj, tmp);
        tmp = i[_properties];
        if (tmp) assign(obj, tmp);
        tmp = i[_propertyDescriptors];
        if (tmp) defineProperties(obj, tmp);
  
        if (!inits || !inits[_length]) return obj;
  
        if (options === _undefined) options = {};
        for (i = 0; i < inits[_length];) {
          initializer = inits[i++];
          if (isFunction(initializer)) {
            returnedValue = initializer.call(obj, options,
              {instance: obj, stamp: Stamp, args: args});
            obj = returnedValue === _undefined ? obj : returnedValue;
          }
        }
  
        return obj;
      };
    }
docs: Creates new factory instance.
  @returns {Function} The new factory function.