outcome
DSL build on top of Arrow's Raise for Outcome.
Uses Raise<Any?> to provide a slightly optimised builder than nesting either { option { } } and not-being able to use @JvmInline value class.
With context receivers this can be eliminated all together, and context(Raise<None>, Raise<E>) or context(Raise<Null>, Raise<E>) can be used instead.