code: function Pattern() {
  
      // Invoking with `new` this WILL not be able to construct all pattern types
      // like e.g. from objects, those must to through the toPattern() function instead
      if (this instanceof Pattern) {
  
          this._match = [];
          this._last = [];
          this._first = [];
          this._not = [];
  
          l.map(l.flatten(arguments), this.merge, this);
  
      } else {
          return Pattern.toPattern.apply(null, arguments);
      }
  
  }
docs: Pattern -------------------------------------------------------------------- ----------------------------------------------------------------------------