import type * as P from "@principia/prelude"; import { pureF } from "@principia/prelude"; import type * as HKT from "@principia/prelude/HKT"; import * as E from "../Either"; export const left = (M: P.Monad) => (l: E) => pureF(M)(E.left(l)); export const right = (M: P.Monad) => (r: A) => pureF(M)(E.right(r)); export const leftM = (M: P.Monad) => < N extends string, K, Q, W, X, I, S, R, E, A >( ma: HKT.Kind ): HKT.Kind> => M.map_(ma, (a) => E.left(a)); export const rightM = (M: P.Monad) => < N extends string, K, Q, W, X, I, S, R, E, A >( ma: HKT.Kind ): HKT.Kind> => M.map_(ma, E.right);