sig   type atom   type t   val equal : t Tc.equal   val compare : t Tc.compare   val hash : t Tc.hash   val to_json : t Tc.to_json   val of_json : t Tc.of_json   val size_of : t Tc.size_of   val write : t Tc.writer   val read : t Tc.reader   module Path :     sig       type t = string list       val equal : t Tc.equal       val compare : t Tc.compare       val hash : t Tc.hash       val to_json : t Tc.to_json       val of_json : t Tc.of_json       val size_of : t Tc.size_of       val write : t Tc.writer       val read : t Tc.reader       val to_hum : t -> string       val of_hum : string -> t       type step = string       val empty : t       val create : step list -> t       val is_empty : t -> bool       val cons : step -> t -> t       val rcons : t -> step -> t       val decons : t -> (step * t) option       val rdecons : t -> (t * step) option       val map : t -> (step -> 'a) -> 'a list       module Step :         sig           type t = step           val equal : t Tc.equal           val compare : t Tc.compare           val hash : t Tc.hash           val to_json : t Tc.to_json           val of_json : t Tc.of_json           val size_of : t Tc.size_of           val write : t Tc.writer           val read : t Tc.reader           val to_hum : t -> string           val of_hum : string -> t         end     end   val merge : Path.t -> t option Irmin.Merge.t   val empty : t   val length : t -> int   val set : t -> int -> Ezirmin.Rope_content.atom -> t   val get : t -> int -> Ezirmin.Rope_content.atom   val insert : t -> int -> t -> t   val delete : t -> int -> int -> t   val append : t -> t -> t   val concat : t -> t list -> t   val split : t -> int -> t * t end