sig
  type image_size = [ `none | `wpercent of int | `wpx of int ]
  type environment =
      [ `authors
      | `bold
      | `bypass
      | `cell of bool * int * [ `center | `left | `right ]
      | `close_brace
      | `cmd_begin of string * string list
      | `cmd_end
      | `cmd_inside of Bracetax_commands.Stack.environment
      | `code of string list
      | `em_dash
      | `en_dash
      | `header
      | `horizontal_ellipsis
      | `ignore
      | `image of string * Bracetax_commands.Stack.image_size * string
      | `italic
      | `item
      | `link of Bracetax_commands.Link.t
      | `list of [ `itemize | `numbered ] * string list * bool Pervasives.ref
      | `mono_space
      | `new_line
      | `non_break_space
      | `note
      | `open_brace
      | `paragraph
      | `quotation of string * string
      | `quote
      | `section of int * string
      | `sharp
      | `subscript
      | `subtitle
      | `superscript
      | `table of int * string option
      | `text
      | `title
      | `unknown of string * string list
      | `utf8_char of int ]
  type t = Bracetax_commands.Stack.environment list Pervasives.ref
  val empty : unit -> 'a list Pervasives.ref
  val push : 'a list Pervasives.ref -> '-> unit
  val pop : 'a list Pervasives.ref -> 'a option
  val head : 'a list Pervasives.ref -> 'a option
  val to_list : 'Pervasives.ref -> 'a
end