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

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

// src/boolean.ts
var boolean_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, boolean_exports, {
  BooleanAlgebra: () => BooleanAlgebra,
  Eq: () => Eq,
  MonoidAll: () => MonoidAll,
  MonoidAny: () => MonoidAny,
  Ord: () => Ord,
  SemigroupAll: () => SemigroupAll,
  SemigroupAny: () => SemigroupAny,
  Show: () => Show,
  fold: () => fold,
  foldW: () => foldW,
  isBoolean: () => isBoolean,
  match: () => match,
  matchW: () => matchW
});
var isBoolean = (u) => typeof u === "boolean";
var matchW = (onFalse, onTrue) => (value) => value ? onTrue() : onFalse();
var foldW = matchW;
var match = foldW;
var fold = match;
var Eq = {
  equals: (first, second) => first === second
};
var BooleanAlgebra = {
  meet: (first, second) => first && second,
  join: (first, second) => first || second,
  zero: false,
  one: true,
  implies: (first, second) => !first || second,
  not: (b) => !b
};
var SemigroupAll = {
  concat: (first, second) => first && second
};
var SemigroupAny = {
  concat: (first, second) => first || second
};
var MonoidAll = {
  concat: SemigroupAll.concat,
  empty: true
};
var MonoidAny = {
  concat: SemigroupAny.concat,
  empty: false
};
var Ord = {
  equals: Eq.equals,
  compare: (first, second) => first < second ? -1 : first > second ? 1 : 0
};
var Show = {
  show: (b) => JSON.stringify(b)
};
















exports.isBoolean = isBoolean; exports.matchW = matchW; exports.foldW = foldW; exports.match = match; exports.fold = fold; exports.Eq = Eq; exports.BooleanAlgebra = BooleanAlgebra; exports.SemigroupAll = SemigroupAll; exports.SemigroupAny = SemigroupAny; exports.MonoidAll = MonoidAll; exports.MonoidAny = MonoidAny; exports.Ord = Ord; exports.Show = Show; exports.boolean_exports = boolean_exports;
