sig
  type mark =
      [ `INSERT | `MARK of Gtk.text_mark | `NAME of string | `SEL_BOUND ]
  class child_anchor :
    Gtk.text_child_anchor ->
    object
      method as_childanchor : Gtk.text_child_anchor
      method deleted : bool
      method get_oid : int
      method widgets : GObj.widget list
    end
  val child_anchor : unit -> GText.child_anchor
  type tag_property =
      [ `ACCUMULATIVE_MARGIN of bool
      | `BACKGROUND of string
      | `BACKGROUND_FULL_HEIGHT of bool
      | `BACKGROUND_FULL_HEIGHT_SET of bool
      | `BACKGROUND_GDK of Gdk.color
      | `BACKGROUND_SET of bool
      | `DIRECTION of Gtk.Tags.text_direction
      | `EDITABLE of bool
      | `EDITABLE_SET of bool
      | `FAMILY of string
      | `FAMILY_SET of bool
      | `FONT of string
      | `FONT_DESC of Pango.font_description
      | `FOREGROUND of string
      | `FOREGROUND_GDK of Gdk.color
      | `FOREGROUND_SET of bool
      | `INDENT of int
      | `INDENT_SET of bool
      | `INVISIBLE of bool
      | `INVISIBLE_SET of bool
      | `JUSTIFICATION of Gtk.Tags.justification
      | `JUSTIFICATION_SET of bool
      | `LANGUAGE of string
      | `LANGUAGE_SET of bool
      | `LEFT_MARGIN of int
      | `LEFT_MARGIN_SET of bool
      | `PARAGRAPH_BACKGROUND of string
      | `PARAGRAPH_BACKGROUND_GDK of Gdk.color
      | `PARAGRAPH_BACKGROUND_SET of bool
      | `PIXELS_ABOVE_LINES of int
      | `PIXELS_ABOVE_LINES_SET of bool
      | `PIXELS_BELOW_LINES of int
      | `PIXELS_BELOW_LINES_SET of bool
      | `PIXELS_INSIDE_WRAP of int
      | `PIXELS_INSIDE_WRAP_SET of bool
      | `RIGHT_MARGIN of int
      | `RIGHT_MARGIN_SET of bool
      | `RISE of int
      | `RISE_SET of bool
      | `SCALE of Pango.Tags.scale
      | `SCALE_SET of bool
      | `SIZE of int
      | `SIZE_POINTS of float
      | `SIZE_SET of bool
      | `STRETCH of Pango.Tags.stretch
      | `STRETCH_SET of bool
      | `STRIKETHROUGH of bool
      | `STRIKETHROUGH_SET of bool
      | `STYLE of Pango.Tags.style
      | `STYLE_SET of bool
      | `TABS_SET of bool
      | `UNDERLINE of Pango.Tags.underline
      | `UNDERLINE_SET of bool
      | `VARIANT of Pango.Tags.variant
      | `VARIANT_SET of bool
      | `WEIGHT of Pango.Tags.weight
      | `WEIGHT_SET of bool
      | `WRAP_MODE of Gtk.Tags.wrap_mode
      | `WRAP_MODE_SET of bool ]
  class tag_signals :
    [> `texttag ] Gtk.obj ->
    object ('a)
      method after : 'a
      method event :
        callback:(origin:unit Gobject.obj ->
                  GdkEvent.any -> Gtk.text_iter -> bool) ->
        GtkSignal.id
    end
  class tag :
    Gtk.text_tag ->
    object
      method as_tag : Gtk.text_tag
      method connect : GText.tag_signals
      method event : 'Gtk.obj -> GdkEvent.any -> Gtk.text_iter -> bool
      method get_oid : int
      method get_property : ([ `texttag ], 'a) Gobject.property -> 'a
      method priority : int
      method set_priority : int -> unit
      method set_properties : GText.tag_property list -> unit
      method set_property : GText.tag_property -> unit
    end
  val tag : ?name:string -> unit -> GText.tag
  type contents =
      [ `CHAR of Glib.unichar
      | `CHILD of GText.child_anchor
      | `PIXBUF of GdkPixbuf.pixbuf
      | `UNKNOWN ]
  class nocopy_iter :
    Gtk.text_iter ->
    object
      method as_iter : Gtk.text_iter
      method assign : GText.nocopy_iter -> unit
      method backward_char : bool
      method backward_chars : int -> bool
      method backward_cursor_position : bool
      method backward_cursor_positions : int -> bool
      method backward_find_char :
        ?limit:GText.iter -> (Glib.unichar -> bool) -> bool
      method backward_line : bool
      method backward_lines : int -> bool
      method backward_sentence_start : bool
      method backward_sentence_starts : int -> bool
      method backward_to_tag_toggle : GText.tag option -> bool
      method backward_word_start : bool
      method backward_word_starts : int -> bool
      method forward_char : bool
      method forward_chars : int -> bool
      method forward_cursor_position : bool
      method forward_cursor_positions : int -> bool
      method forward_find_char :
        ?limit:GText.iter -> (Glib.unichar -> bool) -> bool
      method forward_line : bool
      method forward_lines : int -> bool
      method forward_sentence_end : bool
      method forward_sentence_ends : int -> bool
      method forward_to_end : unit
      method forward_to_line_end : bool
      method forward_to_tag_toggle : GText.tag option -> bool
      method forward_word_end : bool
      method forward_word_ends : int -> bool
      method set_line : int -> unit
      method set_line_index : int -> unit
      method set_line_offset : int -> unit
      method set_offset : int -> unit
      method set_visible_line_index : int -> unit
      method set_visible_line_offset : int -> unit
    end
  and iter :
    Gtk.text_iter ->
    object
      method as_iter : Gtk.text_iter
      method backward_char : GText.iter
      method backward_chars : int -> GText.iter
      method backward_cursor_position : GText.iter
      method backward_cursor_positions : int -> GText.iter
      method backward_find_char :
        ?limit:GText.iter -> (Glib.unichar -> bool) -> GText.iter
      method backward_line : GText.iter
      method backward_lines : int -> GText.iter
      method backward_search :
        ?flags:Gtk.Tags.text_search_flag list ->
        ?limit:GText.iter -> string -> (GText.iter * GText.iter) option
      method backward_sentence_start : GText.iter
      method backward_sentence_starts : int -> GText.iter
      method backward_to_tag_toggle : GText.tag option -> GText.iter
      method backward_word_start : GText.iter
      method backward_word_starts : int -> GText.iter
      method begins_tag : GText.tag option -> bool
      method buffer : Gtk.text_buffer
      method bytes_in_line : int
      method can_insert : default:bool -> bool
      method char : Glib.unichar
      method chars_in_line : int
      method compare : GText.iter -> int
      method contents : GText.contents
      method copy : GText.iter
      method editable : default:bool -> bool
      method ends_line : bool
      method ends_sentence : bool
      method ends_tag : GText.tag option -> bool
      method ends_word : bool
      method equal : GText.iter -> bool
      method forward_char : GText.iter
      method forward_chars : int -> GText.iter
      method forward_cursor_position : GText.iter
      method forward_cursor_positions : int -> GText.iter
      method forward_find_char :
        ?limit:GText.iter -> (Glib.unichar -> bool) -> GText.iter
      method forward_line : GText.iter
      method forward_lines : int -> GText.iter
      method forward_search :
        ?flags:Gtk.Tags.text_search_flag list ->
        ?limit:GText.iter -> string -> (GText.iter * GText.iter) option
      method forward_sentence_end : GText.iter
      method forward_sentence_ends : int -> GText.iter
      method forward_to_end : GText.iter
      method forward_to_line_end : GText.iter
      method forward_to_tag_toggle : GText.tag option -> GText.iter
      method forward_word_end : GText.iter
      method forward_word_ends : int -> GText.iter
      method get_slice : stop:GText.iter -> string
      method get_text : stop:GText.iter -> string
      method get_toggled_tags : bool -> GText.tag list
      method get_visible_slice : stop:GText.iter -> string
      method get_visible_text : stop:GText.iter -> string
      method has_tag : GText.tag -> bool
      method in_range : start:GText.iter -> stop:GText.iter -> bool
      method inside_sentence : bool
      method inside_word : bool
      method is_cursor_position : bool
      method is_end : bool
      method is_start : bool
      method language : string
      method line : int
      method line_index : int
      method line_offset : int
      method marks : Gtk.text_mark list
      method nocopy : GText.nocopy_iter
      method offset : int
      method set_line : int -> GText.iter
      method set_line_index : int -> GText.iter
      method set_line_offset : int -> GText.iter
      method set_offset : int -> GText.iter
      method set_visible_line_index : int -> GText.iter
      method set_visible_line_offset : int -> GText.iter
      method starts_line : bool
      method starts_sentence : bool
      method starts_word : bool
      method tags : GText.tag list
      method toggles_tag : GText.tag option -> bool
      method visible_line_index : int
      method visible_line_offset : int
    end
  val as_iter : GText.iter -> Gtk.text_iter
  class tag_table_signals :
    [> `texttagtable ] Gtk.obj ->
    object ('a)
      method after : 'a
      method tag_added : callback:(Gtk.text_tag -> unit) -> GtkSignal.id
      method tag_changed :
        callback:(Gtk.text_tag -> size:bool -> unit) -> GtkSignal.id
      method tag_removed : callback:(Gtk.text_tag -> unit) -> GtkSignal.id
    end
  class tag_table_skel :
    [> `texttagtable ] Gtk.obj ->
    object
      method add : Gtk.text_tag -> unit
      method as_tag_table : Gtk.text_tag_table
      method get_oid : int
      method lookup : string -> Gtk.text_tag option
      method remove : Gtk.text_tag -> unit
      method size : int
    end
  class tag_table :
    [> `texttagtable ] Gtk.obj ->
    object
      method add : Gtk.text_tag -> unit
      method as_tag_table : Gtk.text_tag_table
      method connect : GText.tag_table_signals
      method get_oid : int
      method lookup : string -> Gtk.text_tag option
      method remove : Gtk.text_tag -> unit
      method size : int
    end
  val tag_table : unit -> GText.tag_table
  class type buffer_signals_skel_type =
    object
      method apply_tag :
        callback:(GText.tag -> start:GText.iter -> stop:GText.iter -> unit) ->
        GtkSignal.id
      method begin_user_action : callback:(unit -> unit) -> GtkSignal.id
      method changed : callback:(unit -> unit) -> GtkSignal.id
      method delete_range :
        callback:(start:GText.iter -> stop:GText.iter -> unit) ->
        GtkSignal.id
      method end_user_action : callback:(unit -> unit) -> GtkSignal.id
      method insert_child_anchor :
        callback:(GText.iter -> Gtk.text_child_anchor -> unit) ->
        GtkSignal.id
      method insert_pixbuf :
        callback:(GText.iter -> GdkPixbuf.pixbuf -> unit) -> GtkSignal.id
      method insert_text :
        callback:(GText.iter -> string -> unit) -> GtkSignal.id
      method mark_deleted : callback:(Gtk.text_mark -> unit) -> GtkSignal.id
      method mark_set :
        callback:(GText.iter -> Gtk.text_mark -> unit) -> GtkSignal.id
      method modified_changed : callback:(unit -> unit) -> GtkSignal.id
      method notify_cursor_position : callback:(int -> unit) -> GtkSignal.id
      method notify_has_selection : callback:(bool -> unit) -> GtkSignal.id
      method notify_tag_table :
        callback:(Gtk.text_tag_table -> unit) -> GtkSignal.id
      method remove_tag :
        callback:(GText.tag -> start:GText.iter -> stop:GText.iter -> unit) ->
        GtkSignal.id
    end
  class type ['b] buffer_signals_type =
    object ('a)
      method after : 'a
      method apply_tag :
        callback:(GText.tag -> start:GText.iter -> stop:GText.iter -> unit) ->
        GtkSignal.id
      method begin_user_action : callback:(unit -> unit) -> GtkSignal.id
      method changed : callback:(unit -> unit) -> GtkSignal.id
      method private connect :
        'c. ('b, 'c) GtkSignal.t -> callback:'-> GtkSignal.id
      method delete_range :
        callback:(start:GText.iter -> stop:GText.iter -> unit) ->
        GtkSignal.id
      method end_user_action : callback:(unit -> unit) -> GtkSignal.id
      method insert_child_anchor :
        callback:(GText.iter -> Gtk.text_child_anchor -> unit) ->
        GtkSignal.id
      method insert_pixbuf :
        callback:(GText.iter -> GdkPixbuf.pixbuf -> unit) -> GtkSignal.id
      method insert_text :
        callback:(GText.iter -> string -> unit) -> GtkSignal.id
      method mark_deleted : callback:(Gtk.text_mark -> unit) -> GtkSignal.id
      method mark_set :
        callback:(GText.iter -> Gtk.text_mark -> unit) -> GtkSignal.id
      method modified_changed : callback:(unit -> unit) -> GtkSignal.id
      method private notify :
        'c.
          ('b, 'c) Gobject.property -> callback:('-> unit) -> GtkSignal.id
      method notify_cursor_position : callback:(int -> unit) -> GtkSignal.id
      method notify_has_selection : callback:(bool -> unit) -> GtkSignal.id
      method notify_tag_table :
        callback:(Gtk.text_tag_table -> unit) -> GtkSignal.id
      method remove_tag :
        callback:(GText.tag -> start:GText.iter -> stop:GText.iter -> unit) ->
        GtkSignal.id
    end
  class virtual buffer_signals_skel :
    object
      method apply_tag :
        callback:(tag -> start:iter -> stop:iter -> unit) -> GtkSignal.id
      method begin_user_action : callback:(unit -> unit) -> GtkSignal.id
      method changed : callback:(unit -> unit) -> GtkSignal.id
      method private virtual connect :
        'a.
          ([> `textbuffer ] as 'c, 'a) GtkSignal.t ->
          callback:'-> GtkSignal.id
      method delete_range :
        callback:(start:iter -> stop:iter -> unit) -> GtkSignal.id
      method end_user_action : callback:(unit -> unit) -> GtkSignal.id
      method insert_child_anchor :
        callback:(iter -> Gtk.text_child_anchor -> unit) -> GtkSignal.id
      method insert_pixbuf :
        callback:(iter -> GdkPixbuf.pixbuf -> unit) -> GtkSignal.id
      method insert_text : callback:(iter -> string -> unit) -> GtkSignal.id
      method mark_deleted : callback:(Gtk.text_mark -> unit) -> GtkSignal.id
      method mark_set :
        callback:(iter -> Gtk.text_mark -> unit) -> GtkSignal.id
      method modified_changed : callback:(unit -> unit) -> GtkSignal.id
      method private virtual notify :
        'b.
          ('c, 'b) Gobject.property -> callback:('-> unit) -> GtkSignal.id
      method notify_cursor_position : callback:(int -> unit) -> GtkSignal.id
      method notify_has_selection : callback:(bool -> unit) -> GtkSignal.id
      method notify_tag_table :
        callback:(Gtk.text_tag_table -> unit) -> GtkSignal.id
      method remove_tag :
        callback:(tag -> start:iter -> stop:iter -> unit) -> GtkSignal.id
    end
  class buffer_signals :
    ([> `textbuffer ] as 'b) Gtk.obj -> ['b] buffer_signals_type
  exception No_such_mark of string
  type position =
      [ `END
      | `INSERT
      | `ITER of GText.iter
      | `LINE of int
      | `LINEBYTE of int * int
      | `LINECHAR of int * int
      | `MARK of Gtk.text_mark
      | `NAME of string
      | `OFFSET of int
      | `SEL_BOUND
      | `START ]
  class buffer_skel :
    [> `textbuffer ] Gtk.obj ->
    object
      method add_selection_clipboard : GData.clipboard -> unit
      method apply_tag :
        GText.tag -> start:GText.iter -> stop:GText.iter -> unit
      method apply_tag_by_name :
        string -> start:GText.iter -> stop:GText.iter -> unit
      method as_buffer : Gtk.text_buffer
      method begin_user_action : unit -> unit
      method bounds : GText.iter * GText.iter
      method char_count : int
      method copy_clipboard : GData.clipboard -> unit
      method create_child_anchor : GText.iter -> GText.child_anchor
      method create_mark :
        ?name:string -> ?left_gravity:bool -> GText.iter -> Gtk.text_mark
      method create_tag :
        ?name:string -> GText.tag_property list -> GText.tag
      method cursor_position : int
      method cut_clipboard :
        ?default_editable:bool -> GData.clipboard -> unit
      method delete : start:GText.iter -> stop:GText.iter -> unit
      method delete_interactive :
        start:GText.iter ->
        stop:GText.iter -> ?default_editable:bool -> unit -> bool
      method delete_mark : GText.mark -> unit
      method delete_selection :
        ?interactive:bool -> ?default_editable:bool -> unit -> bool
      method end_iter : GText.iter
      method end_user_action : unit -> unit
      method get_iter : GText.position -> GText.iter
      method get_iter_at_byte : line:int -> int -> GText.iter
      method get_iter_at_char : ?line:int -> int -> GText.iter
      method get_iter_at_mark : GText.mark -> GText.iter
      method get_mark : GText.mark -> Gtk.text_mark
      method get_oid : int
      method get_text :
        ?start:GText.iter ->
        ?stop:GText.iter -> ?slice:bool -> ?visible:bool -> unit -> string
      method has_selection : bool
      method insert :
        ?iter:GText.iter ->
        ?tag_names:string list -> ?tags:GText.tag list -> string -> unit
      method insert_child_anchor : GText.iter -> GText.child_anchor -> unit
      method insert_interactive :
        ?iter:GText.iter -> ?default_editable:bool -> string -> bool
      method insert_pixbuf :
        iter:GText.iter -> pixbuf:GdkPixbuf.pixbuf -> unit
      method insert_range :
        iter:GText.iter -> start:GText.iter -> stop:GText.iter -> unit
      method insert_range_interactive :
        iter:GText.iter ->
        start:GText.iter ->
        stop:GText.iter -> ?default_editable:bool -> unit -> bool
      method line_count : int
      method modified : bool
      method move_mark : GText.mark -> where:GText.iter -> unit
      method paste_clipboard :
        ?iter:GText.iter -> ?default_editable:bool -> GData.clipboard -> unit
      method place_cursor : where:GText.iter -> unit
      method remove_all_tags : start:GText.iter -> stop:GText.iter -> unit
      method remove_selection_clipboard : GData.clipboard -> unit
      method remove_tag :
        GText.tag -> start:GText.iter -> stop:GText.iter -> unit
      method remove_tag_by_name :
        string -> start:GText.iter -> stop:GText.iter -> unit
      method select_range : GText.iter -> GText.iter -> unit
      method selection_bounds : GText.iter * GText.iter
      method set_modified : bool -> unit
      method set_text : string -> unit
      method start_iter : GText.iter
      method tag_table : Gtk.text_tag_table
    end
  class buffer :
    [> `textbuffer ] Gtk.obj ->
    object
      method add_selection_clipboard : GData.clipboard -> unit
      method apply_tag : tag -> start:iter -> stop:iter -> unit
      method apply_tag_by_name : string -> start:iter -> stop:iter -> unit
      method as_buffer : Gtk.text_buffer
      method begin_user_action : unit -> unit
      method bounds : iter * iter
      method char_count : int
      method connect : GText.buffer_signals
      method copy_clipboard : GData.clipboard -> unit
      method create_child_anchor : iter -> child_anchor
      method create_mark :
        ?name:string -> ?left_gravity:bool -> iter -> Gtk.text_mark
      method create_tag : ?name:string -> tag_property list -> tag
      method cursor_position : int
      method cut_clipboard :
        ?default_editable:bool -> GData.clipboard -> unit
      method delete : start:iter -> stop:iter -> unit
      method delete_interactive :
        start:iter -> stop:iter -> ?default_editable:bool -> unit -> bool
      method delete_mark : mark -> unit
      method delete_selection :
        ?interactive:bool -> ?default_editable:bool -> unit -> bool
      method end_iter : iter
      method end_user_action : unit -> unit
      method get_iter : position -> iter
      method get_iter_at_byte : line:int -> int -> iter
      method get_iter_at_char : ?line:int -> int -> iter
      method get_iter_at_mark : mark -> iter
      method get_mark : mark -> Gtk.text_mark
      method get_oid : int
      method get_text :
        ?start:iter ->
        ?stop:iter -> ?slice:bool -> ?visible:bool -> unit -> string
      method has_selection : bool
      method insert :
        ?iter:iter ->
        ?tag_names:string list -> ?tags:tag list -> string -> unit
      method insert_child_anchor : iter -> child_anchor -> unit
      method insert_interactive :
        ?iter:iter -> ?default_editable:bool -> string -> bool
      method insert_pixbuf : iter:iter -> pixbuf:GdkPixbuf.pixbuf -> unit
      method insert_range : iter:iter -> start:iter -> stop:iter -> unit
      method insert_range_interactive :
        iter:iter ->
        start:iter -> stop:iter -> ?default_editable:bool -> unit -> bool
      method line_count : int
      method modified : bool
      method move_mark : mark -> where:iter -> unit
      method paste_clipboard :
        ?iter:iter -> ?default_editable:bool -> GData.clipboard -> unit
      method place_cursor : where:iter -> unit
      method remove_all_tags : start:iter -> stop:iter -> unit
      method remove_selection_clipboard : GData.clipboard -> unit
      method remove_tag : tag -> start:iter -> stop:iter -> unit
      method remove_tag_by_name : string -> start:iter -> stop:iter -> unit
      method select_range : iter -> iter -> unit
      method selection_bounds : iter * iter
      method set_modified : bool -> unit
      method set_text : string -> unit
      method start_iter : iter
      method tag_table : Gtk.text_tag_table
    end
  val buffer :
    ?tag_table:GText.tag_table -> ?text:string -> unit -> GText.buffer
  class view_signals :
    [> Gtk.text_view ] Gtk.obj ->
    object ('a)
      method after : 'a
      method copy_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method cut_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method delete_from_cursor :
        callback:(Gtk.Tags.delete_type -> int -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method insert_at_cursor : callback:(string -> unit) -> GtkSignal.id
      method move_cursor :
        callback:(Gtk.Tags.movement_step -> int -> extend:bool -> unit) ->
        GtkSignal.id
      method move_focus :
        callback:(Gtk.Tags.direction_type -> unit) -> GtkSignal.id
      method notify_accepts_tab : callback:(bool -> unit) -> GtkSignal.id
      method notify_bottom_margin : callback:(int -> unit) -> GtkSignal.id
      method notify_cursor_visible : callback:(bool -> unit) -> GtkSignal.id
      method notify_editable : callback:(bool -> unit) -> GtkSignal.id
      method notify_im_module : callback:(string -> unit) -> GtkSignal.id
      method notify_indent : callback:(int -> unit) -> GtkSignal.id
      method notify_input_hints :
        callback:(GtkEnums.input_hints -> unit) -> GtkSignal.id
      method notify_input_purpose :
        callback:(GtkEnums.input_purpose -> unit) -> GtkSignal.id
      method notify_justification :
        callback:(GtkEnums.justification -> unit) -> GtkSignal.id
      method notify_left_margin : callback:(int -> unit) -> GtkSignal.id
      method notify_monospace : callback:(bool -> unit) -> GtkSignal.id
      method notify_overwrite : callback:(bool -> unit) -> GtkSignal.id
      method notify_pixels_above_lines :
        callback:(int -> unit) -> GtkSignal.id
      method notify_pixels_below_lines :
        callback:(int -> unit) -> GtkSignal.id
      method notify_pixels_inside_wrap :
        callback:(int -> unit) -> GtkSignal.id
      method notify_populate_all : callback:(bool -> unit) -> GtkSignal.id
      method notify_right_margin : callback:(int -> unit) -> GtkSignal.id
      method notify_top_margin : callback:(int -> unit) -> GtkSignal.id
      method notify_wrap_mode :
        callback:(GtkEnums.wrap_mode -> unit) -> GtkSignal.id
      method page_horizontally :
        callback:(int -> extend:bool -> unit) -> GtkSignal.id
      method paste_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method populate_popup :
        callback:(Gtk.menu Gtk.obj -> unit) -> GtkSignal.id
      method set_anchor : callback:(unit -> unit) -> GtkSignal.id
      method set_scroll_adjustments :
        callback:(GData.adjustment option -> GData.adjustment option -> unit) ->
        GtkSignal.id
      method toggle_overwrite : callback:(unit -> unit) -> GtkSignal.id
    end
  class view_skel :
    ([> Gtk.text_view ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method accepts_tab : bool
      method add_child_at_anchor : GObj.widget -> GText.child_anchor -> unit
      method add_child_in_window :
        child:GObj.widget ->
        which_window:Gtk.Tags.text_window_type -> x:int -> y:int -> unit
      method as_view : Gtk.text_view Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method backward_display_line : GText.iter -> bool
      method backward_display_line_start : GText.iter -> bool
      method bottom_margin : int
      method buffer : GText.buffer
      method buffer_to_window_coords :
        tag:Gtk.Tags.text_window_type -> x:int -> y:int -> int * int
      method coerce : GObj.widget
      method cursor_visible : bool
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method editable : bool
      method event : GObj.event_ops
      method forward_display_line : GText.iter -> bool
      method forward_display_line_end : GText.iter -> bool
      method get_border_window_size :
        [ `BOTTOM | `LEFT | `RIGHT | `TOP ] -> int
      method get_iter_at_location : x:int -> y:int -> GText.iter
      method get_iter_location : GText.iter -> Gdk.Rectangle.t
      method get_line_at_y : int -> GText.iter * int
      method get_line_yrange : GText.iter -> int * int
      method get_oid : int
      method get_window : Gtk.Tags.text_window_type -> Gdk.window option
      method get_window_type : Gdk.window -> Gtk.Tags.text_window_type
      method im_module : string
      method indent : int
      method input_hints : GtkEnums.input_hints
      method input_purpose : GtkEnums.input_purpose
      method justification : Gtk.Tags.justification
      method left_margin : int
      method misc : GObj.misc_ops
      method monospace : bool
      method move_child : child:GObj.widget -> x:int -> y:int -> unit
      method move_mark_onscreen : GText.mark -> bool
      method move_visually : GText.iter -> int -> bool
      method overwrite : bool
      method pixels_above_lines : int
      method pixels_below_lines : int
      method pixels_inside_wrap : int
      method place_cursor_onscreen : unit -> bool
      method populate_all : bool
      method right_margin : int
      method scroll_mark_onscreen : GText.mark -> unit
      method scroll_to_iter :
        ?within_margin:float ->
        ?use_align:bool ->
        ?xalign:float -> ?yalign:float -> GText.iter -> bool
      method scroll_to_mark :
        ?within_margin:float ->
        ?use_align:bool ->
        ?xalign:float -> ?yalign:float -> GText.mark -> unit
      method set_accepts_tab : bool -> unit
      method set_border_window_size :
        typ:[ `BOTTOM | `LEFT | `RIGHT | `TOP ] -> size:int -> unit
      method set_bottom_margin : int -> unit
      method set_buffer : GText.buffer -> unit
      method set_cursor_visible : bool -> unit
      method set_editable : bool -> unit
      method set_im_module : string -> unit
      method set_indent : int -> unit
      method set_input_hints : GtkEnums.input_hints -> unit
      method set_input_purpose : GtkEnums.input_purpose -> unit
      method set_justification : Gtk.Tags.justification -> unit
      method set_left_margin : int -> unit
      method set_monospace : bool -> unit
      method set_overwrite : bool -> unit
      method set_pixels_above_lines : int -> unit
      method set_pixels_below_lines : int -> unit
      method set_pixels_inside_wrap : int -> unit
      method set_populate_all : bool -> unit
      method set_right_margin : int -> unit
      method set_top_margin : int -> unit
      method set_wrap_mode : Gtk.Tags.wrap_mode -> unit
      method starts_display_line : GText.iter -> bool
      method top_margin : int
      method visible_rect : Gdk.Rectangle.t
      method window_to_buffer_coords :
        tag:Gtk.Tags.text_window_type -> x:int -> y:int -> int * int
      method wrap_mode : Gtk.Tags.wrap_mode
    end
  class view :
    ([> Gtk.text_view ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method accepts_tab : bool
      method add_child_at_anchor : GObj.widget -> child_anchor -> unit
      method add_child_in_window :
        child:GObj.widget ->
        which_window:Gtk.Tags.text_window_type -> x:int -> y:int -> unit
      method as_view : Gtk.text_view Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method backward_display_line : iter -> bool
      method backward_display_line_start : iter -> bool
      method bottom_margin : int
      method buffer : buffer
      method buffer_to_window_coords :
        tag:Gtk.Tags.text_window_type -> x:int -> y:int -> int * int
      method coerce : GObj.widget
      method connect : GText.view_signals
      method cursor_visible : bool
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method editable : bool
      method event : GObj.event_ops
      method forward_display_line : iter -> bool
      method forward_display_line_end : iter -> bool
      method get_border_window_size :
        [ `BOTTOM | `LEFT | `RIGHT | `TOP ] -> int
      method get_iter_at_location : x:int -> y:int -> iter
      method get_iter_location : iter -> Gdk.Rectangle.t
      method get_line_at_y : int -> iter * int
      method get_line_yrange : iter -> int * int
      method get_oid : int
      method get_window : Gtk.Tags.text_window_type -> Gdk.window option
      method get_window_type : Gdk.window -> Gtk.Tags.text_window_type
      method im_module : string
      method indent : int
      method input_hints : GtkEnums.input_hints
      method input_purpose : GtkEnums.input_purpose
      method justification : Gtk.Tags.justification
      method left_margin : int
      method misc : GObj.misc_ops
      method monospace : bool
      method move_child : child:GObj.widget -> x:int -> y:int -> unit
      method move_mark_onscreen : mark -> bool
      method move_visually : iter -> int -> bool
      method overwrite : bool
      method pixels_above_lines : int
      method pixels_below_lines : int
      method pixels_inside_wrap : int
      method place_cursor_onscreen : unit -> bool
      method populate_all : bool
      method right_margin : int
      method scroll_mark_onscreen : mark -> unit
      method scroll_to_iter :
        ?within_margin:float ->
        ?use_align:bool -> ?xalign:float -> ?yalign:float -> iter -> bool
      method scroll_to_mark :
        ?within_margin:float ->
        ?use_align:bool -> ?xalign:float -> ?yalign:float -> mark -> unit
      method set_accepts_tab : bool -> unit
      method set_border_window_size :
        typ:[ `BOTTOM | `LEFT | `RIGHT | `TOP ] -> size:int -> unit
      method set_bottom_margin : int -> unit
      method set_buffer : buffer -> unit
      method set_cursor_visible : bool -> unit
      method set_editable : bool -> unit
      method set_im_module : string -> unit
      method set_indent : int -> unit
      method set_input_hints : GtkEnums.input_hints -> unit
      method set_input_purpose : GtkEnums.input_purpose -> unit
      method set_justification : Gtk.Tags.justification -> unit
      method set_left_margin : int -> unit
      method set_monospace : bool -> unit
      method set_overwrite : bool -> unit
      method set_pixels_above_lines : int -> unit
      method set_pixels_below_lines : int -> unit
      method set_pixels_inside_wrap : int -> unit
      method set_populate_all : bool -> unit
      method set_right_margin : int -> unit
      method set_top_margin : int -> unit
      method set_wrap_mode : Gtk.Tags.wrap_mode -> unit
      method starts_display_line : iter -> bool
      method top_margin : int
      method visible_rect : Gdk.Rectangle.t
      method window_to_buffer_coords :
        tag:Gtk.Tags.text_window_type -> x:int -> y:int -> int * int
      method wrap_mode : Gtk.Tags.wrap_mode
    end
  val view :
    ?buffer:GText.buffer ->
    ?editable:bool ->
    ?cursor_visible:bool ->
    ?justification:Gtk.Tags.justification ->
    ?wrap_mode:Gtk.Tags.wrap_mode ->
    ?accepts_tab:bool ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GText.view
end