pipe(
Either.right(1),
Either.map((n) => Tuple.make(n, n * 2)),
Either.filterOrLeft(
([initialValue, extraCalcForFiltering]) => initialValue <= extraCalcForFiltering,
([initialValue, extraCalcForFiltering]) =>
new Error(`Value too large. Expected: <${extraCalcForFiltering}, actual:${initialValue}`)
),
Either.map(([initialValue]) =>initialValue)
);
pipe(
Either.right(1),
Either.map((n) => Tuple.make(n, n * 2)),
Either.filterOrLeft(
([initialValue, extraCalcForFiltering]) => initialValue <= extraCalcForFiltering,
([initialValue, extraCalcForFiltering]) =>
new Error(`Value too large. Expected: <${extraCalcForFiltering}, actual:${initialValue}`)
),
Either.map(([initialValue]) =>initialValue)
);