sig
  module Ansi :
    sig
      val kill_line : unit -> unit
      val bell : unit -> unit
      val home_cursor : unit -> unit
      val save_cursor : unit -> unit
      val unsave_cursor : unit -> unit
      type color =
          [ `Black
          | `Blue
          | `Cyan
          | `Green
          | `Magenta
          | `Red
          | `White
          | `Yellow ]
      type attr =
          [ `Bg of color
          | `Black
          | `Blue
          | `Bright
          | `Cyan
          | `Dim
          | `Green
          | `Magenta
          | `Red
          | `Reverse
          | `Underscore
          | `White
          | `Yellow ]
      val printf : attr list -> ('a, out_channel, unit) format -> 'a
      val eprintf : attr list -> ('a, out_channel, unit) format -> 'a
      val output_string : attr list -> out_channel -> string -> unit
      val output : attr list -> out_channel -> string -> int -> int -> unit
      val string_with_attr : attr list -> string -> string
    end
  val is_color_tty : unit -> bool
  val width : unit -> [ `Cols of int | `Not_a_tty | `Not_available ]
  val print_list : out_channel -> (string * Ansi.attr list) list -> unit
end