text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.map_ = exports.Filterable = exports.Compactable = exports.Functor = exports.getWitherable = exports.getFilterableWithIndex = exports.URI = exports.separate = exports.partitionMap = exports.partition = exports.map = exports.filterMap = exports.filter = exports.compact = exports.fromFoldable = exports.singleton = exports.getMonoid = exports.getEq = exports.empty = exports.isSubmap = exports.lookup = exports.lookupWithKey = exports.pop = exports.modifyAt = exports.updateAt = exports.deleteAt = exports.insertAt = exports.toUnfoldable = exports.toArray = exports.collect = exports.values = exports.keys = exports.elem = exports.member = exports.isEmpty = exports.size = exports.getShow = void 0;
  var RM = require("./ReadonlyMap");
  /* tslint:disable:readonly-array */
  /**
   * @category instances
   * @since 2.0.0
   */
  exports.getShow = RM.getShow;
  /**
   * Calculate the number of key/value pairs in a map
   *
   * @since 2.0.0
   */
  exports.size = RM.size;
  /**
   * Test whether or not a map is empty
   *
   * @since 2.0.0
   */
  exports.isEmpty = RM.isEmpty;
  // TODO: remove non-curried overloading in v3
  /**
   * Test whether or not a key exists in a map
   *
   * @since 2.0.0
   */
  exports.member = RM.member;
  // TODO: remove non-curried overloading in v3
  /**
   * Test whether or not a value is a member of a map
   *
   * @since 2.0.0
   */
  exports.elem = RM.elem;
  /**
   * Get a sorted array of the keys contained in a map
   *
   * @since 2.0.0
   */
  exports.keys = RM.keys;
  /**
   * Get a sorted array of the values contained in a map
   *
   * @since 2.0.0
   */
  exports.values = RM.values;
  /**
   * @since 2.0.0
   */
  exports.collect = RM.collect;
  /**
   * Get a sorted of the key/value pairs contained in a map
   *
   * @since 2.0.0
   */
  exports.toArray = RM.toReadonlyArray;
  function toUnfoldable(O, U) {
      return RM.toUnfoldable(O, U);
  }
  exports.toUnfoldable = toUnfoldable;
  /**
   * Insert or replace a key/value pair in a map
   *
   * @category combinators
   * @since 2.0.0
   */
  exports.insertAt = RM.insertAt;
  /**
   * Delete a key and value from a map
   *
   * @category combinators
   * @since 2.0.0
   */
  exports.deleteAt = RM.deleteAt;
  /**
   * @since 2.0.0
   */
  exports.updateAt = RM.updateAt;
  /**
   * @since 2.0.0
   */
  exports.modifyAt = RM.modifyAt;
  /**
   * Delete a key and value from a map, returning the value as well as the subsequent map
   *
   * @since 2.0.0
   */
  exports.pop = RM.pop;
  // TODO: remove non-curried overloading in v3
  /**
   * Lookup the value for a key in a `Map`.
   * If the result is a `Some`, the existing key is also returned.
   *
   * @since 2.0.0
   */
  exports.lookupWithKey = RM.lookupWithKey;
  // TODO: remove non-curried overloading in v3
  /**
   * Lookup the value for a key in a `Map`.
   *
   * @since 2.0.0
   */
  exports.lookup = RM.lookup;
  // TODO: remove non-curried overloading in v3
  /**
   * Test whether or not one `Map` contains all of the keys and values contained in another `Map`
   *
   * @since 2.0.0
   */
  exports.isSubmap = RM.isSubmap;
  /**
   * @since 2.0.0
   */
  exports.empty = new Map();
  /**
   * @category instances
   * @since 2.0.0
   */
  exports.getEq = RM.getEq;
  /**
   * Gets `Monoid` instance for Maps given `Semigroup` instance for their values
   *
   * @category instances
   * @since 2.0.0
   */
  exports.getMonoid = RM.getMonoid;
  /**
   * Create a map with one key/value pair
   *
   * @since 2.0.0
   */
  exports.singleton = RM.singleton;
  function fromFoldable(E, M, F) {
      return RM.fromFoldable(E, M, F);
  }
  exports.fromFoldable = fromFoldable;
  // -------------------------------------------------------------------------------------
  // non-pipeables
  // -------------------------------------------------------------------------------------
  var map__ = RM.Functor.map;
  var filter_ = RM.Filterable.filter;
  var filterMap_ = RM.Filterable.filterMap;
  var partition_ = RM.Filterable.partition;
  var partitionMap_ = RM.Filterable.partitionMap;
  // -------------------------------------------------------------------------------------
  // pipeables
  // -------------------------------------------------------------------------------------
  /**
   * @category Compactable
   * @since 2.0.0
   */
  exports.compact = RM.compact;
  /**
   * @category Filterable
   * @since 2.0.0
   */
  exports.filter = RM.filter;
  /**
   * @category Filterable
   * @since 2.0.0
   */
  exports.filterMap = RM.filterMap;
  /**
   * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types
   * use the type constructor `F` to represent some computational context.
   *
   * @category Functor
   * @since 2.0.0
   */
  exports.map = RM.map;
  /**
   * @category Filterable
   * @since 2.0.0
   */
  exports.partition = RM.partition;
  /**
   * @category Filterable
   * @since 2.0.0
   */
  exports.partitionMap = RM.partitionMap;
  /**
   * @category Compactable
   * @since 2.0.0
   */
  exports.separate = RM.separate;
  // -------------------------------------------------------------------------------------
  // instances
  // -------------------------------------------------------------------------------------
  /**
   * @category instances
   * @since 2.0.0
   */
  exports.URI = 'Map';
  /**
   * @category instances
   * @since 2.0.0
   */
  exports.getFilterableWithIndex = RM.getFilterableWithIndex;
  /**
   * @category instances
   * @since 2.0.0
   */
  exports.getWitherable = RM.getWitherable;
  /**
   * @category instances
   * @since 2.7.0
   */
  exports.Functor = {
      URI: exports.URI,
      map: map__
  };
  /**
   * @category instances
   * @since 2.7.0
   */
  exports.Compactable = {
      URI: exports.URI,
      compact: exports.compact,
      separate: exports.separate
  };
  /**
   * @category instances
   * @since 2.7.0
   */
  exports.Filterable = {
      URI: exports.URI,
      map: map__,
      compact: exports.compact,
      separate: exports.separate,
      filter: filter_,
      filterMap: filterMap_,
      partition: partition_,
      partitionMap: partitionMap_
  };
  // TODO: remove in v3
  /**
   * @category instances
   * @since 2.0.0
   */
  exports.map_ = exports.Filterable;
  