sig
  type state
  module R : Renderer.Renderer
  val display : Renderer.display
  val setup : Config.config -> Sketch.Sketch.state
  val loop : Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val draw : Config.config -> Sketch.Sketch.state -> Shape.t
  val mouse_pressed :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val mouse_released :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val mouse_moved :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val mouse_dragged :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val mouse_clicked :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val mouse_scrolled :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val key_pressed :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val key_released :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val key_typed : Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val window_resized :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
  val window_closed :
    Config.config -> Sketch.Sketch.state -> Sketch.Sketch.state
end