/** * EnvThese is a TheseT of Env. * @since 0.9.7 */ import { Semigroup } from 'fp-ts/Semigroup' import * as TH from 'fp-ts/These' import * as TT from 'fp-ts/TheseT' import * as E from './Env' /** * @since 0.9.7 * @category Model */ export interface EnvThese extends E.Env> {} /** * @since 0.9.7 * @category Constructor */ export const getAp = (S: Semigroup) => TT.ap(E.Apply, S) /** * @since 0.9.7 * @category Combinator */ export const bimap = TT.bimap(E.Functor) /** * @since 0.9.7 * @category Constructor */ export const both = TT.both(E.Pointed) /** * @since 0.9.7 * @category Combinator */ export const getChain = (S: Semigroup) => TT.chain(E.Monad, S) /** * @since 0.9.7 * @category Constructor */ export const left = TT.left(E.Pointed) /** * @since 0.9.7 * @category Constructor */ export const leftF = TT.leftF(E.Chain) /** * @since 0.9.7 * @category Combinator */ export const map = TT.map(E.Functor) /** * @since 0.9.7 * @category Combinator */ export const mapLeft = TT.mapLeft(E.Functor) /** * @since 0.9.7 * @category Combinator */ export const match = TT.match(E.Functor) /** * @since 0.9.7 * @category Combinator */ export const matchW = TT.match(E.Functor) as ( onLeft: (e: E) => B, onRight: (a: A) => C, onBoth: (e: E, a: A) => D, ) => (ma: E.Env>) => E.Env /** * @since 0.9.7 * @category Combinator */ export const matchE = TT.matchE(E.Chain) /** * @since 0.9.7 * @category Combinator */ export const matchEW = TT.matchE(E.Chain) as ( onLeft: (e: E) => E.Env, onRight: (a: A) => E.Env, onBoth: (e: E, a: A) => E.Env, ) => (ma: E.Env>) => E.Env /** * @since 0.9.7 * @category Constructor */ export const right = TT.right(E.Pointed) /** * @since 0.9.7 * @category Constructor */ export const rightF = TT.rightF(E.Chain) /** * @since 0.9.7 * @category Combinator */ export const swap = TT.swap(E.Functor) /** * @since 0.9.7 * @category Combinator */ export const toTuple2 = TT.toTuple2(E.Functor)