Currently, the effects of Handled is just {effects of source computation} - {effects handled by handler}. This makes performing effects within the handler difficult. A workaround is to call embed() just before the handle() so that the source computation contains necessary effects, but this is insufficient if the handler wants to re-perform the effect.
The handled computation should have {effects of source computation} - {effects handled by handler} + {effects the handler can produce} as the effect, but taking the union of two type-level sets is very difficult.