docs: function useModule(name, moduleClass) {
      if (arguments.length === 1) {
          moduleClass = name;
          name = null;
      }
  
      // create module
      var module = new moduleClass(),
          bootResponse = void 0;
  
      // Wrapper methods
      function boot() {
          var initialResponse = typeof module.boot === "function" ? module.boot() : null;
  
          if (initialResponse === false) {
              return false;
          }
  
          return initialResponse instanceof _es6Promise.Promise ? initialResponse.then(function (response) {
              bootResponse = response;
              return module;
          }) : module;
      }
  
      function ready() {
          if (typeof module.ready === "function") {
              return module.ready(bootResponse);
          }
      }
  
      return typeof name === "string" ? (0, _packages.define)(name, boot).then(ready) : (0, _packages.define)(boot).then(ready);
  }