text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  var function_1 = require("fp-ts/lib/function");
  var Option_1 = require("fp-ts/lib/Option");
  var monocle_ts_1 = require("monocle-ts");
  /**
   * @since 0.3.0
   */
  exports.getEq = function (S) { return S; };
  /**
   * @since 0.2.0
   */
  exports.getOrd = function (O) { return O; };
  /**
   * @since 0.2.0
   */
  exports.getSemigroup = function (S) { return S; };
  /**
   * @since 0.2.0
   */
  exports.getMonoid = function (M) { return M; };
  /**
   * @since 0.2.0
   */
  exports.getSemiring = function (S) { return S; };
  /**
   * @since 0.2.0
   */
  exports.getRing = function (R) { return R; };
  /**
   * @since 0.2.0
   */
  exports.getField = function (F) { return F; };
  //
  // isos
  //
  var anyIso = 
  /*#__PURE__*/
  new monocle_ts_1.Iso(function_1.unsafeCoerce, function_1.unsafeCoerce);
  /**
   * @since 0.2.0
   */
  function iso() {
      return anyIso;
  }
  exports.iso = iso;
  /**
   * @since 0.2.0
   */
  function prism(predicate) {
      return new monocle_ts_1.Prism(function (s) { return (predicate(s) ? Option_1.some(s) : Option_1.none); }, function_1.identity);
  }
  exports.prism = prism;
  