sig
  module Pen :
    sig
      type t = Mlpost.Pen.t
      val transform :
        Mlpost.Transform.t -> Mlpost.Brush.Pen.t -> Mlpost.Brush.Pen.t
      val default : Mlpost.Brush.Pen.t
      val circle : Mlpost.Brush.Pen.t
      val square : Mlpost.Brush.Pen.t
      val from_path : Mlpost.Path.t -> Mlpost.Brush.Pen.t
      val scale : Mlpost.Num.t -> Mlpost.Brush.Pen.t -> Mlpost.Brush.Pen.t
      val rotate : float -> Mlpost.Brush.Pen.t -> Mlpost.Brush.Pen.t
      val shift : Mlpost.Point.t -> Mlpost.Brush.Pen.t -> Mlpost.Brush.Pen.t
      val yscale : Mlpost.Num.t -> Mlpost.Brush.Pen.t -> Mlpost.Brush.Pen.t
      val xscale : Mlpost.Num.t -> Mlpost.Brush.Pen.t -> Mlpost.Brush.Pen.t
    end
  module Dash :
    sig
      type t = Mlpost.Dash.t
      val evenly : Mlpost.Brush.Dash.t
      val withdots : Mlpost.Brush.Dash.t
      val scaled : Mlpost.Num.t -> Mlpost.Brush.Dash.t -> Mlpost.Brush.Dash.t
      val shifted :
        Mlpost.Point.t -> Mlpost.Brush.Dash.t -> Mlpost.Brush.Dash.t
      type on_off
      val on : Mlpost.Num.t -> Mlpost.Brush.Dash.on_off
      val off : Mlpost.Num.t -> Mlpost.Brush.Dash.on_off
      val pattern : Mlpost.Brush.Dash.on_off list -> Mlpost.Brush.Dash.t
    end
  type t
  val t :
    ?color:Mlpost.Color.t ->
    ?pen:Mlpost.Brush.Pen.t ->
    ?dash:Mlpost.Brush.Dash.t ->
    ?scale:Mlpost.Num.t -> ?brush:Mlpost.Brush.t -> unit -> Mlpost.Brush.t
  val pen : Mlpost.Brush.t -> Mlpost.Brush.Pen.t option
  val dash : Mlpost.Brush.t -> Mlpost.Brush.Dash.t option
  val color : Mlpost.Brush.t -> Mlpost.Color.t option
  type brush_colored =
      ?pen:Mlpost.Brush.Pen.t ->
      ?dash:Mlpost.Brush.Dash.t ->
      ?scale:Mlpost.Num.t -> ?brush:Mlpost.Brush.t -> unit -> Mlpost.Brush.t
  val white : Mlpost.Brush.brush_colored
  val black : Mlpost.Brush.brush_colored
  val red : Mlpost.Brush.brush_colored
  val blue : Mlpost.Brush.brush_colored
  val green : Mlpost.Brush.brush_colored
  val cyan : Mlpost.Brush.brush_colored
  val yellow : Mlpost.Brush.brush_colored
  val magenta : Mlpost.Brush.brush_colored
  val lightred : Mlpost.Brush.brush_colored
  val lightblue : Mlpost.Brush.brush_colored
  val lightgreen : Mlpost.Brush.brush_colored
  val lightcyan : Mlpost.Brush.brush_colored
  val lightyellow : Mlpost.Brush.brush_colored
  val lightmagenta : Mlpost.Brush.brush_colored
  val gray : float -> Mlpost.Brush.brush_colored
  val lightgray : Mlpost.Brush.brush_colored
  val mediumgray : Mlpost.Brush.brush_colored
  val darkgray : Mlpost.Brush.brush_colored
  val orange : Mlpost.Brush.brush_colored
  val purple : Mlpost.Brush.brush_colored
end