type InvoiceType = TaggedType1 | TaggedType2 | ...
const firstHandler = (invoiceType1: TaggedType1) => Effect.Effect<...>
const secondeHandler = (invoiceType2: TaggedType2) => Effect.Effect<...>
// something that turn firstHandler and secondHandler into
// (TaggedType1 | TaggedType2) => Effect.Effect<...>
// basically or combinator but with function that take tagged types
type InvoiceType = TaggedType1 | TaggedType2 | ...
const firstHandler = (invoiceType1: TaggedType1) => Effect.Effect<...>
const secondeHandler = (invoiceType2: TaggedType2) => Effect.Effect<...>
// something that turn firstHandler and secondHandler into
// (TaggedType1 | TaggedType2) => Effect.Effect<...>
// basically or combinator but with function that take tagged types