sig
  type t
  val empty :
    ?name:string ->
    ?width:Mlpost.Num.t -> ?height:Mlpost.Num.t -> unit -> Mlpost.Box.t
  type style =
      Rect
    | Circle
    | RoundRect
    | Patatoid
    | Ellipse
    | Custom of
        (Mlpost.Num.t ->
         Mlpost.Num.t -> Mlpost.Num.t * Mlpost.Num.t * Mlpost.Path.t)
  type 'a box_creator =
      ?dx:Mlpost.Num.t ->
      ?dy:Mlpost.Num.t ->
      ?name:string ->
      ?stroke:Mlpost.Color.t option ->
      ?pen:Mlpost.Pen.t -> ?fill:Mlpost.Color.t -> '-> Mlpost.Box.t
  val pic :
    ?style:Mlpost.Box.style -> Mlpost.Picture.t Mlpost.Box.box_creator
  val path : ?style:Mlpost.Box.style -> Mlpost.Path.t Mlpost.Box.box_creator
  val tex : ?style:Mlpost.Box.style -> string Mlpost.Box.box_creator
  val box : ?style:Mlpost.Box.style -> Mlpost.Box.t Mlpost.Box.box_creator
  val circle : Mlpost.Box.t Mlpost.Box.box_creator
  val ellipse : Mlpost.Box.t Mlpost.Box.box_creator
  val rect : Mlpost.Box.t Mlpost.Box.box_creator
  val round_rect : Mlpost.Box.t Mlpost.Box.box_creator
  val patatoid : Mlpost.Box.t Mlpost.Box.box_creator
  val bpath : Mlpost.Box.t -> Mlpost.Path.t
  val ctr : t -> Point.t
  val north : Mlpost.Box.t -> Mlpost.Point.t
  val south : Mlpost.Box.t -> Mlpost.Point.t
  val west : Mlpost.Box.t -> Mlpost.Point.t
  val east : Mlpost.Box.t -> Mlpost.Point.t
  val north_west : Mlpost.Box.t -> Mlpost.Point.t
  val south_west : Mlpost.Box.t -> Mlpost.Point.t
  val north_east : Mlpost.Box.t -> Mlpost.Point.t
  val south_east : Mlpost.Box.t -> Mlpost.Point.t
  val ctr : Mlpost.Box.t -> Mlpost.Point.t
  val height : Mlpost.Box.t -> Mlpost.Num.t
  val width : Mlpost.Box.t -> Mlpost.Num.t
  val shift : Mlpost.Point.t -> Mlpost.Box.t -> Mlpost.Box.t
  val center : Mlpost.Point.t -> Mlpost.Box.t -> Mlpost.Box.t
  val draw : ?debug:bool -> Mlpost.Box.t -> Mlpost.Command.t
  val group :
    ?style:Mlpost.Box.style -> Mlpost.Box.t list Mlpost.Box.box_creator
  val hbox :
    ?padding:Mlpost.Num.t ->
    ?pos:Mlpost.Command.vposition ->
    ?style:Mlpost.Box.style -> Mlpost.Box.t list Mlpost.Box.box_creator
  val vbox :
    ?padding:Mlpost.Num.t ->
    ?pos:Mlpost.Command.hposition ->
    ?style:Mlpost.Box.style -> Mlpost.Box.t list Mlpost.Box.box_creator
  val tabular :
    ?hpadding:Mlpost.Num.t ->
    ?vpadding:Mlpost.Num.t ->
    ?pos:Mlpost.Command.position -> Mlpost.Box.t array array -> Mlpost.Box.t
  val tabularl :
    ?hpadding:Mlpost.Num.t ->
    ?vpadding:Mlpost.Num.t ->
    ?pos:Mlpost.Command.position -> Mlpost.Box.t list list -> Mlpost.Box.t
  val tabulari :
    ?hpadding:Mlpost.Num.t ->
    ?vpadding:Mlpost.Num.t ->
    ?pos:Mlpost.Command.position ->
    int -> int -> (int -> int -> Mlpost.Box.t) -> Mlpost.Box.t
  val hblock :
    ?pos:Mlpost.Command.vposition ->
    ?name:string ->
    ?min_width:Mlpost.Num.t ->
    ?same_width:bool -> Mlpost.Box.t list -> Mlpost.Box.t
  val vblock :
    ?pos:Mlpost.Command.hposition ->
    ?name:string ->
    ?min_height:Mlpost.Num.t ->
    ?same_height:bool -> Mlpost.Box.t list -> Mlpost.Box.t
  val grid :
    ?pos:Mlpost.Command.position -> Mlpost.Box.t array array -> Mlpost.Box.t
  val gridl :
    ?pos:Mlpost.Command.position -> Mlpost.Box.t list list -> Mlpost.Box.t
  val gridi :
    ?pos:Mlpost.Command.position ->
    int -> int -> (int -> int -> Mlpost.Box.t) -> Mlpost.Box.t
  val nth : int -> Mlpost.Box.t -> Mlpost.Box.t
  val get : string -> Mlpost.Box.t -> Mlpost.Box.t
  val elts : Mlpost.Box.t -> Mlpost.Box.t array
  val get_fill : Mlpost.Box.t -> Mlpost.Color.t option
  val set_fill : Mlpost.Color.t -> Mlpost.Box.t -> Mlpost.Box.t
  val get_stroke : Mlpost.Box.t -> Mlpost.Color.t option
  val set_stroke : Mlpost.Color.t -> Mlpost.Box.t -> Mlpost.Box.t
  val clear_stroke : Mlpost.Box.t -> Mlpost.Box.t
  val get_name : Mlpost.Box.t -> string option
  val set_name : string -> Mlpost.Box.t -> Mlpost.Box.t
  val get_pen : Mlpost.Box.t -> Mlpost.Pen.t option
  val set_pen : Mlpost.Pen.t -> Mlpost.Box.t -> Mlpost.Box.t
  val shadow : Mlpost.Box.t -> Mlpost.Box.t
  val cpath :
    ?style:Mlpost.Path.joint ->
    ?outd:Mlpost.Path.direction ->
    ?ind:Mlpost.Path.direction ->
    Mlpost.Box.t -> Mlpost.Box.t -> Mlpost.Path.t
end