monads-co
Version:
An implementation of Haskell's type classes in TS
23 lines • 847 B
JavaScript
;
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