docs: function EnumType(schema, opts) {
    Type.call(this, schema, opts);
    if (!Array.isArray(schema.symbols) || !schema.symbols.length) {
      throw new Error(f('invalid enum symbols: %j', schema.symbols));
    }
    this.symbols = Object.freeze(schema.symbols.slice());
    this._indices = {};
    this.symbols.forEach(function (symbol, i) {
      if (!isValidName(symbol)) {
        throw new Error(f('invalid %s symbol: %j', this, symbol));
      }
      if (this._indices[symbol] !== undefined) {
        throw new Error(f('duplicate %s symbol: %j', this, symbol));
      }
      this._indices[symbol] = i;
    }, this);
    this._branchConstructor = this._createBranchConstructor();
    Object.freeze(this);
  }