`sig
type 'a t
exception Failure
val create : unit -> 'a Cursor.t
val before : 'a Cursor.t -> unit
val after : 'a Cursor.t -> unit
val insert : 'a Cursor.t -> 'a -> unit
val insert_last : 'a Cursor.t -> 'a -> unit
val peek : 'a Cursor.t -> 'a
val peek_last : 'a Cursor.t -> 'a
val goto_first : 'a Cursor.t -> unit
val goto_last : 'a Cursor.t -> unit
val get_all : 'a Cursor.t -> 'a list
val is_last_line : 'a Cursor.t -> bool
end`