sig   type 'a t   type clipboard = {     clipboard_get : unit -> Zed_rope.t;     clipboard_set : Zed_rope.t -> unit;   }   val new_clipboard : unit -> Zed_edit.clipboard   val create :     ?editable:(int -> int -> bool) ->     ?move:(int -> int -> int) ->     ?clipboard:Zed_edit.clipboard ->     ?match_word:(Zed_rope.t -> int -> int option) ->     ?locale:string option React.signal ->     ?undo_size:int -> unit -> 'Zed_edit.t   val match_by_regexp : Zed_re.t -> Zed_rope.t -> int -> int option   val get_data : 'Zed_edit.t -> 'a   val set_data : 'Zed_edit.t -> '-> unit   val clear_data : 'Zed_edit.t -> unit   val text : 'Zed_edit.t -> Zed_rope.t   val lines : 'Zed_edit.t -> Zed_lines.t   val get_line : 'Zed_edit.t -> int -> Zed_rope.t   val changes : 'Zed_edit.t -> (int * int * int) React.event   val update : 'Zed_edit.t -> Zed_cursor.t list -> unit React.event   val erase_mode : 'Zed_edit.t -> bool React.signal   val get_erase_mode : 'Zed_edit.t -> bool   val set_erase_mode : 'Zed_edit.t -> bool -> unit   val mark : 'Zed_edit.t -> Zed_cursor.t   val selection : 'Zed_edit.t -> bool React.signal   val get_selection : 'Zed_edit.t -> bool   val set_selection : 'Zed_edit.t -> bool -> unit   val new_cursor : 'Zed_edit.t -> Zed_cursor.t   exception Cannot_edit   type 'a context   val context :     ?check:bool -> 'Zed_edit.t -> Zed_cursor.t -> 'Zed_edit.context   val edit : 'Zed_edit.context -> 'Zed_edit.t   val cursor : 'Zed_edit.context -> Zed_cursor.t   val check : 'Zed_edit.context -> bool   val with_check : bool -> 'Zed_edit.context -> 'Zed_edit.context   val goto : 'Zed_edit.context -> ?set_wanted_column:bool -> int -> unit   val move : 'Zed_edit.context -> ?set_wanted_column:bool -> int -> unit   val move_line : 'Zed_edit.context -> int -> unit   val position : 'Zed_edit.context -> int   val line : 'Zed_edit.context -> int   val column : 'Zed_edit.context -> int   val at_bol : 'Zed_edit.context -> bool   val at_eol : 'Zed_edit.context -> bool   val at_bot : 'Zed_edit.context -> bool   val at_eot : 'Zed_edit.context -> bool   val insert : 'Zed_edit.context -> Zed_rope.t -> unit   val insert_no_erase : 'Zed_edit.context -> Zed_rope.t -> unit   val remove_next : 'Zed_edit.context -> int -> unit   val remove_prev : 'Zed_edit.context -> int -> unit   val remove : 'Zed_edit.context -> int -> unit   val replace : 'Zed_edit.context -> int -> Zed_rope.t -> unit   val newline : 'Zed_edit.context -> unit   val next_char : 'Zed_edit.context -> unit   val prev_char : 'Zed_edit.context -> unit   val next_line : 'Zed_edit.context -> unit   val prev_line : 'Zed_edit.context -> unit   val goto_bol : 'Zed_edit.context -> unit   val goto_eol : 'Zed_edit.context -> unit   val goto_bot : 'Zed_edit.context -> unit   val goto_eot : 'Zed_edit.context -> unit   val delete_next_char : 'Zed_edit.context -> unit   val delete_prev_char : 'Zed_edit.context -> unit   val delete_next_line : 'Zed_edit.context -> unit   val delete_prev_line : 'Zed_edit.context -> unit   val kill_next_line : 'Zed_edit.context -> unit   val kill_prev_line : 'Zed_edit.context -> unit   val switch_erase_mode : 'Zed_edit.context -> unit   val set_mark : 'Zed_edit.context -> unit   val goto_mark : 'Zed_edit.context -> unit   val copy : 'Zed_edit.context -> unit   val kill : 'Zed_edit.context -> unit   val yank : 'Zed_edit.context -> unit   val capitalize_word : 'Zed_edit.context -> unit   val lowercase_word : 'Zed_edit.context -> unit   val uppercase_word : 'Zed_edit.context -> unit   val next_word : 'Zed_edit.context -> unit   val prev_word : 'Zed_edit.context -> unit   val delete_next_word : 'Zed_edit.context -> unit   val delete_prev_word : 'Zed_edit.context -> unit   val kill_next_word : 'Zed_edit.context -> unit   val kill_prev_word : 'Zed_edit.context -> unit   val undo : 'Zed_edit.context -> unit   type action =       Insert of CamomileLibrary.UChar.t     | Newline     | Next_char     | Prev_char     | Next_line     | Prev_line     | Goto_bol     | Goto_eol     | Goto_bot     | Goto_eot     | Delete_next_char     | Delete_prev_char     | Delete_next_line     | Delete_prev_line     | Kill_next_line     | Kill_prev_line     | Switch_erase_mode     | Set_mark     | Goto_mark     | Copy     | Kill     | Yank     | Capitalize_word     | Lowercase_word     | Uppercase_word     | Next_word     | Prev_word     | Delete_next_word     | Delete_prev_word     | Kill_next_word     | Kill_prev_word     | Undo   val get_action : Zed_edit.action -> 'Zed_edit.context -> unit   val actions : (Zed_edit.action * string) list   val doc_of_action : Zed_edit.action -> string   val action_of_name : string -> Zed_edit.action   val name_of_action : Zed_edit.action -> string end