sig
  type return_type =
    Atomic_edit.return_type =
      Ok
    | Changed of string * string
    | Abort
  val atomic_edit : f:(string -> [ `Abort | `Ok ]) -> string -> return_type
end