sig
  type t
  val create :
    ?name:string ->
    w:int ->
    h:int ->
    length:int ->
    ?first:int ->
    generate:(int -> Bogue.Layout.t) ->
    ?height_fn:(int -> int option) ->
    ?cleanup:(Bogue.Layout.t -> unit) ->
    ?max_memory:int ->
    ?linear:bool ->
    ?scrollbar_width:int -> ?scale_width:bool -> unit -> Bogue.Layout.t
end