sig
  type 'a rfun constraint 'a = 'b -> 'c
  exception Rfun_not_found of string
  val register : string -> ('a -> 'b) -> ('a -> 'b) Mapred_rfun.rfun
  val finish : unit -> unit
  val lookup : ('a -> 'b) Mapred_rfun.rfun -> 'a -> 'b
  val get_id : ('a -> 'b) Mapred_rfun.rfun -> string
  val apply_partially :
    ('a -> 'b -> 'c) Mapred_rfun.rfun -> 'a -> ('b -> 'c) Mapred_rfun.rfun
  val p4_new_file : (unit -> unit) -> unit
  val p4_register :
    (unit -> unit) -> ('a -> 'b) -> ('a -> 'b) Mapred_rfun.rfun
end