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