I'd love to see how code using your version compares to code using the OP's version. Got any similar examples?
MatchMap.of(someOptional, defaultValue)
.whenEquals(MyEnum.VALUEX, v -> someFn(p1, p2))
.whenEquals(MyEnum.VALUEY, v -> otherFn(p1, p2))
.resolve(); match(enumValOpt)
.when(some(eq(MyEnum.VALUEX))).then(() -> someFn(p1, p2))
.when(some(eq(MyEnum.VALUEY))).then(() -> otherFn(p1, p2))
.orElse(defaultValue)
.doMatch();
It's a little longer than your example since there is support for more than just Optional, but it's pretty similar.