function MultiIndex(indexVals) {
    (0, _classCallCheck3.default)(this, MultiIndex);

    if (indexVals instanceof _immutable2.default.OrderedMap) this._multiindex = MultiIndex._parseOrderedMap(indexVals);else if (indexVals instanceof _immutable2.default.List || Array.isArray(indexVals)) this._multiindex = MultiIndex._parseArrayList(indexVals);else throw new TypeError('index values must be OrderedMap or Iterable of Iterables');
    this._values = MultiIndex._parseMultiIndex(indexVals);
  }
A MultiIndex is an Immutable.OrderedMap of MultiIndexes nested until pointing to an Index

@param {Immutable.OrderedMap} indexVals