monads

A missing monad library
IN THIS PACKAGE
Module Monads . Std . Monad . State . S2 . Exn
val expect : ?finally:( unit -> ( unit, 's ) t ) -> f:( unit -> ( 'a, 's ) t ) -> catch:( exn -> ( 'a, 's ) t ) -> ( 'a, 's ) t

expect ?finally ~f ~catch evaluates f (), if an exception e is raised during the evaluation (or call) then the result of whole computation will be catch e. If an optional argument ?finally is passed the finally is called after f () computation or after catch e if an exception was raised.