sig val general_rec : (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b val reentrant_unit : (unit -> 'a) -> unit -> 'a end