finally.ml1 2 3 4 5 6 7 8 9 10 11 12let[@inline never] finally release acquire scope = let x = acquire () in match scope x with | y -> release x; y | exception exn -> let bt = Printexc.get_raw_backtrace () in release x; Printexc.raise_with_backtrace exn bt external ( let@ ) : ('a -> 'b) -> 'a -> 'b = "%apply"