S.decorate should include map({ cases })
I've found myself implementing map
by hand a few times in different projects now.
For clarity, map
would have the same signature as fold
where it receives all cases, but it would rewrap your value in the original container after visiting the value.