sig
  module Align :
    sig
      type t = Ascii_table.Align.t
      val left : t
      val right : t
      val center : t
    end
  module Display :
    sig
      type t = Ascii_table.Display.t
      val short_box : t
      val tall_box : t
      val line : t
      val blank : t
      val column_titles : t
    end
  module Column :
    sig
      type 'a t = 'Ascii_table.Column.t
      val create :
        ?align:Align.t ->
        ?min_width:int ->
        ?max_width:int ->
        ?show:[ `If_not_empty | `No | `Yes ] ->
        string -> ('-> string) -> 'a t
      val create_attr :
        ?align:Align.t ->
        ?min_width:int ->
        ?max_width:int ->
        ?show:[ `If_not_empty | `No | `Yes ] ->
        string -> ('-> Console.Ansi.attr list * string) -> 'a t
    end
  type ('row, 'rest) renderer =
      ?display:Display.t ->
      ?spacing:int ->
      ?limit_width_to:int ->
      ?header_attr:Console.Ansi.attr list ->
      ?bars:[ `Ascii | `Unicode ] -> 'row Column.t list -> 'row list -> 'rest
  val output : ('a, oc:Core.Std.Out_channel.t -> unit) renderer
  val to_string_noattr : ('a, string) renderer
  val to_string : ('a, string) renderer
  val simple_list_table :
    ?index:bool ->
    ?limit_width_to:int ->
    ?oc:Core.Std.Out_channel.t ->
    ?display:Display.t -> string list -> string list list -> unit
end