diff --git a/bracket.ml b/bracket.ml index ec86ec9..2a05e82 100644 --- a/bracket.ml +++ b/bracket.ml @@ -1,7 +1,5 @@ let bracket ~make:(lazy x) ~act ~free = - match act x with - | result -> free x; result - | exception e -> free x; raise e + Fun.protect (fun () -> act x) ~finally:(fun () -> free x) let infile ~act name = bracket ~make:(lazy (open_in name)) ~act ~free:close_in_noerr