|
- import { constFalse, constTrue, flow, pipe } from './function';
- var contramap_ = function (predicate, f) { return pipe(predicate, contramap(f)); };
- /**
- * @since 2.11.0
- */
- export var contramap = function (f) {
- return function (predicate) {
- return flow(f, predicate);
- };
- };
- /**
- * @category type lambdas
- * @since 2.11.0
- */
- export var URI = 'Predicate';
- /**
- * @category instances
- * @since 2.11.0
- */
- export var getSemigroupAny = function () { return ({
- concat: function (first, second) { return pipe(first, or(second)); }
- }); };
- /**
- * @category instances
- * @since 2.11.0
- */
- export var getMonoidAny = function () { return ({
- concat: getSemigroupAny().concat,
- empty: constFalse
- }); };
- /**
- * @category instances
- * @since 2.11.0
- */
- export var getSemigroupAll = function () { return ({
- concat: function (first, second) { return pipe(first, and(second)); }
- }); };
- /**
- * @category instances
- * @since 2.11.0
- */
- export var getMonoidAll = function () { return ({
- concat: getSemigroupAll().concat,
- empty: constTrue
- }); };
- /**
- * @category instances
- * @since 2.11.0
- */
- export var Contravariant = {
- URI: URI,
- contramap: contramap_
- };
- // -------------------------------------------------------------------------------------
- // utils
- // -------------------------------------------------------------------------------------
- /**
- * @since 2.11.0
- */
- export var not = function (predicate) {
- return function (a) {
- return !predicate(a);
- };
- };
- /**
- * @since 2.11.0
- */
- export var or = function (second) {
- return function (first) {
- return function (a) {
- return first(a) || second(a);
- };
- };
- };
- /**
- * @since 2.11.0
- */
- export var and = function (second) {
- return function (first) {
- return function (a) {
- return first(a) && second(a);
- };
- };
- };
|