docs: function moduleOrPromise(module) {
      if (module instanceof Module) return module;
  
      if (typeof(module) === 'string') {
        if (modules[module]) return modules[module];
        if (deferredModules[module]) return deferredModules[module].promise;
        if (isGlobal(module)) return modules[module] = new GlobalModule(module);
  
        /* Half timeout, so this will take precedence on "create(...)" */
        var deferred = new Deferred(globalTimeout / 2, new NoModuleError(module));
        deferredModules[module] = deferred;
        return deferred.promise;
      }
  
      /* Not a module, not a string... Foo! */
      return Promise.reject("Unable to resolve module of type " + typeof(module));
  
    }