sig
  exception Signal of int
  val signal_protect : int -> ?exn:exn -> (unit -> 'a) -> 'a
end