UNPKG

monads-co

Version:

An implementation of Haskell's type classes in TS

23 lines 847 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Applicative = void 0; const Functor_1 = require("./Functor"); const constant_1 = require("./constant"); class Applicative extends Functor_1.Functor { static liftToApplicative(fn) { return (a) => (b) => b.amap(a.map( // @ts-ignore fn)); } andIgnoreRight(b) { return Applicative.liftToApplicative((a) => (b) => (0, constant_1.constant)(a)(b))(this)(b); } andIgnoreLeft(b) { return Applicative.liftToApplicative((a) => (b) => (0, constant_1.constant)(b)(a))(this)(b); } and(b) { return Applicative.liftToApplicative((a) => (b) => (0, constant_1.constant)([a, b])(undefined))(this)(b); } } exports.Applicative = Applicative; //# sourceMappingURL=Applicative.js.map