Programming and reasoning with algebraic effects and dependent types
MonadTransformers andModular Interpreters