import * as T from "./_internal/task"; import { Managed } from "./model"; /* * ------------------------------------------- * Bifunctor Managed * ------------------------------------------- */ export const bimap_ = (pab: Managed, f: (e: E) => B, g: (a: A) => C): Managed => new Managed(T.bimap_(pab.task, f, ([fin, a]) => [fin, g(a)])); export const bimap = (f: (e: E) => B, g: (a: A) => C) => (pab: Managed): Managed => bimap_(pab, f, g); export const first_ = (pab: Managed, f: (e: E) => D): Managed => new Managed(T.first_(pab.task, f)); export const first = (f: (e: E) => D) => (pab: Managed): Managed => first_(pab, f);