flatMap<L, R, NR> function

Either<L, NR> Function(Either<L, R> either) flatMap<L, R, NR>(
  1. Either<L, NR> f(
    1. R value
    )
)

Transforms Right values with the given function, that returns another Either. The resulting Either is then flattened / replaces the existing value.

expect(
  right('hello').chain(flatMap((s) => right('$s world!'))),
  right('hello world!'),
);
expect(
  right('hello').chain(flatMap((s) => left('fail'))),
  left('fail'),
);

Implementation

Either<L, NR> Function(Either<L, R> either) flatMap<L, R, NR>(
  Either<L, NR> Function(R value) f,
) =>
    fold(left, f);