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




var _chunkSQA7G4TEjs = require('./chunk-SQA7G4TE.js');


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

// src/Predicate.ts
var Predicate_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, Predicate_exports, {
  Contravariant: () => Contravariant,
  URI: () => URI,
  and: () => and,
  contramap: () => contramap,
  getMonoidAll: () => getMonoidAll,
  getMonoidAny: () => getMonoidAny,
  getSemigroupAll: () => getSemigroupAll,
  getSemigroupAny: () => getSemigroupAny,
  not: () => not,
  or: () => or
});
var contramap_ = (predicate, f) => _chunkSQA7G4TEjs.pipe.call(void 0, predicate, contramap(f));
var contramap = (f) => (predicate) => _chunkSQA7G4TEjs.flow.call(void 0, f, predicate);
var URI = "Predicate";
var getSemigroupAny = () => ({
  concat: (first, second) => _chunkSQA7G4TEjs.pipe.call(void 0, first, or(second))
});
var getMonoidAny = () => ({
  concat: getSemigroupAny().concat,
  empty: _chunkSQA7G4TEjs.constFalse
});
var getSemigroupAll = () => ({
  concat: (first, second) => _chunkSQA7G4TEjs.pipe.call(void 0, first, and(second))
});
var getMonoidAll = () => ({
  concat: getSemigroupAll().concat,
  empty: _chunkSQA7G4TEjs.constTrue
});
var Contravariant = {
  URI,
  contramap: contramap_
};
var not = (predicate) => (a) => !predicate(a);
var or = (second) => (first) => (a) => first(a) || second(a);
var and = (second) => (first) => (a) => first(a) && second(a);













exports.contramap = contramap; exports.URI = URI; exports.getSemigroupAny = getSemigroupAny; exports.getMonoidAny = getMonoidAny; exports.getSemigroupAll = getSemigroupAll; exports.getMonoidAll = getMonoidAll; exports.Contravariant = Contravariant; exports.not = not; exports.or = or; exports.and = and; exports.Predicate_exports = Predicate_exports;
