sig
  type t
  type action = unit -> unit
  type label = Text of string | Layout of Bogue.Layout.t
  type entry = { label : Bogue.Menu.label; content : Bogue.Menu.content; }
  and content =
      Action of Bogue.Menu.action
    | Flat of Bogue.Menu.entry list
    | Tower of Bogue.Menu.entry list
    | Custom of Bogue.Menu.entry list
    | Separator
  val create : ?dst:Bogue.Layout.t -> Bogue.Menu.content -> Bogue.Menu.t
  val add_bar : dst:Bogue.Layout.t -> Bogue.Menu.entry list -> unit
  val bar : Bogue.Menu.entry list -> Bogue.Layout.t
  val separator : Bogue.Menu.entry
end