val create : ?path:string -> ?equal:('a -> 'a -> bool) -> 'a -> 'a tval path : 'a t -> string optionval with_path : string -> 'a t -> 'a tval edit : ('a -> 'a) -> 'a t -> 'a tval put : 'a -> 'a t -> 'a tval mark_saved : 'a t -> 'a tval title : 'a t -> string