type t external load : Unix.file_descr -> bool -> t = "caml_grammar_load" let load filename bp = let fd = Unix.openfile filename [ Unix.O_RDONLY ] 0o600 in let g = try load fd bp with | e -> (Unix.close fd; raise e) in Unix.close fd; g