2 ||M|| This file is part of HELM, an Hypertextual, Electronic
3 ||A|| Library of Mathematics, developed at the Computer Science
4 ||T|| Department, University of Bologna, Italy.
6 ||T|| HELM is free software; you can redistribute it and/or
7 ||A|| modify it under the terms of the GNU General Public License
8 \ / version 2 or (at your option) any later version.
9 \ / This software is distributed as is, NO WARRANTY.
10 V_______________________________________________________________ *)
16 exception ObjectNotFound of string Lazy.t
19 let env = H.create hsize
22 (* Internal functions *******************************************************)
24 (* Interface functions ******************************************************)
27 let _, uri, b, t = obj in
28 let obj = !entry, uri, b, t in
29 incr entry; H.add env uri obj; f obj
32 try f (H.find env uri)
33 with Not_found -> raise (ObjectNotFound (lazy (U.string_of_uri uri)))