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.