import { $, $type, Kind, TyK, TyVar } from '@fp4ts/core'; import { Eq } from '@fp4ts/cats-kernel'; import { Contravariant } from '../contravariant'; import { EqK } from '../eq-k'; import { Foldable } from '../foldable'; import { Functor } from '../functor'; import { Traversable } from '../traversable'; import { FunctorFilter } from '../functor-filter'; import { TraversableFilter } from '../traversable-filter'; /** * Coproduct of the two functors. */ export type Coproduct = Coproduct_; export declare const Coproduct: { (): void; Inl(fa: Kind): Coproduct; Inr(ga: Kind): Coproduct; Eq(F: Eq>, G: Eq>): Eq>; EqK(F: EqK, G: EqK): EqK<$>; Functor(F: Functor, G: Functor): Functor<$>; FunctorFilter(F: FunctorFilter, G: FunctorFilter): FunctorFilter<$>; Contravariant(F: Contravariant, G: Contravariant): Contravariant<$>; Foldable(F: Foldable, G: Foldable): Foldable<$>; Traversable(F: Traversable, G: Traversable): Traversable<$>; TraversableFilter(F: TraversableFilter, G: TraversableFilter): TraversableFilter<$>; }; declare abstract class Coproduct_ { /** * Like functor's `map`, but on either of the corresponding functor values. */ abstract transform(f: (fa: Kind) => Kind, g: (ga: Kind) => Kind): Coproduct; abstract eliminate(f: (fa: Kind) => B, g: (ga: Kind) => B): B; } /** * @category Type Constructor * @category Data */ export interface CoproductF extends TyK<[unknown, unknown, unknown]> { [$type]: Coproduct, TyVar, TyVar>; } export {}; //# sourceMappingURL=coproduct.d.ts.map