Representing layered monads
A generalization of exceptions and control in ML-like languages