Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

SemiCoproduct

2 exports Since v0.24.0 Source

Other

Signature

declare function getSemigroup<F extends TypeLambda>(F: SemiCoproduct<F>): <R, O, E, A>() => Semigroup<Kind<F, R, O, E, A>>

Type Class

SemiCoproduct

interface
Since v0.24.0

Signature

interface SemiCoproduct<F extends TypeLambda> extends Invariant<F> {
readonly coproduct: <R1, O1, E1, A, R2, O2, E2, B>(self: Kind<F, R1, O1, E1, A>, that: Kind<F, R2, O2, E2, B>) => Kind<F, R1 & R2, O1 | O2, E1 | E2, A | B>;
readonly coproductMany: <R, O, E, A>(self: Kind<F, R, O, E, A>, collection: Iterable<Kind<F, R, O, E, A>>) => Kind<F, R, O, E, A>;
}