Option.Do.pipe(
Option.bind('foo$', Function.constant(foo$$)),
Option.bind('bar$', Function.constant(bar$$)),
Option.bind('baz$', Function.constant(baz$$)),
Option.map(({foo$, bar$, baz$}) => Either.Do.pipe(
Either.bind('foo', Function.constant(foo$)),
Either.bind('bar', Function.constant(bar$)),
Either.bind('baz', Function.constant(baz$)),
Either.map(({foo, bar, baz}) => foo + bar + baz)
))
)
Option.Do.pipe(
Option.bind('foo$', Function.constant(foo$$)),
Option.bind('bar$', Function.constant(bar$$)),
Option.bind('baz$', Function.constant(baz$$)),
Option.map(({foo$, bar$, baz$}) => Either.Do.pipe(
Either.bind('foo', Function.constant(foo$)),
Either.bind('bar', Function.constant(bar$)),
Either.bind('baz', Function.constant(baz$)),
Either.map(({foo, bar, baz}) => foo + bar + baz)
))
)