"use strict";Object.defineProperty(exports, "__esModule", {value: true});


var _chunkOTKMOSH2js = require('./chunk-OTKMOSH2.js');


var _chunk6C3VEZWHjs = require('./chunk-6C3VEZWH.js');

// src/Refinement.ts
var Refinement_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, Refinement_exports, {
  and: () => and,
  compose: () => compose,
  fromEitherK: () => fromEitherK,
  fromOptionK: () => fromOptionK,
  id: () => id,
  not: () => not,
  or: () => or,
  zero: () => zero
});
var fromOptionK = (getOption) => {
  return (a) => _chunkOTKMOSH2js.isSome.call(void 0, getOption(a));
};
var fromEitherK = (getEither) => {
  return (a) => _chunkOTKMOSH2js.isRight.call(void 0, getEither(a));
};
var id = () => {
  return (_) => true;
};
var not = (refinement) => (a) => !refinement(a);
var or = (second) => (first) => (a) => first(a) || second(a);
var and = (second) => (first) => (a) => first(a) && second(a);
var zero = () => {
  return (_) => false;
};
var compose = (bc) => (ab) => {
  return (i) => ab(i) && bc(i);
};











exports.fromOptionK = fromOptionK; exports.fromEitherK = fromEitherK; exports.id = id; exports.not = not; exports.or = or; exports.and = and; exports.zero = zero; exports.compose = compose; exports.Refinement_exports = Refinement_exports;
