sig
  type 'a ancient
  val mark : 'a -> 'a Ancient.ancient
  val follow : 'a Ancient.ancient -> 'a
  val delete : 'a Ancient.ancient -> unit
  val is_ancient : 'a -> bool
  val address_of : 'a -> nativeint
  type md
  val attach : Unix.file_descr -> nativeint -> Ancient.md
  val detach : Ancient.md -> unit
  val share : Ancient.md -> int -> 'a -> 'a Ancient.ancient
  val get : Ancient.md -> int -> 'a Ancient.ancient
  type info = { i_size : int; }
  val mark_info : 'a -> 'a Ancient.ancient * Ancient.info
  val share_info :
    Ancient.md -> int -> 'a -> 'a Ancient.ancient * Ancient.info
end