type undo = | Inserted of int * int| Deleted of int * string| Boundary
type buffer = {name : string;text : Gap_buffer.t;point : int;mark : int option;file : string option;modified : bool;undo : undo list;undoing : undo list option;top : int;mode : string;
}type request = | Call_interactively of Lisp.t| Isearch of bool| Universal_argument
type t = {buffers : buffer list;disk : (string * string) list;kill_ring : string list;message : string;quit : bool;request : request option;
}val make_buffer : ?file:string -> string -> string -> bufferval create : disk:(string * string) list -> simple:string -> lispval line_of : buffer -> int -> intval line_start : buffer -> int -> intval search : buffer -> string -> forward:bool -> bound:int option -> int optionval key_description : string -> string