docs: function Callable(prop) {
    const fn = this.constructor.prototype[prop];
    const apply = function() {
      return fn.apply(apply, arguments);
    };
    Object.setPrototypeOf(apply, this.constructor.prototype);
    Object.getOwnPropertyNames(fn).forEach((prop) => {
      Object.defineProperty(apply, prop, Object.getOwnPropertyDescriptors(fn, prop));
    });
    return apply;
  }