Lazy branches
Summary
The library currently only supports using already evaluated expressions in branches. Native control flow expressions don't evaluated the expressions of any given branch until after the condition leading to the branch has been evaluated. This should be supported by this library in case the conditional value isn't cheap to compute.
Proposal
const value = fi(condition1)
.thenDo(() => optionA)
.elseIf(condition2)
.thenDo(() => optionB)
// .elseIf(conditionN-1)
// .thenDo(() => optionN-1)
.elseDo(() => optionC);