sig
  type t = Gg.color
  type stops = (float * Gg.color) list
  val v : float -> float -> float -> float -> Gg.color
  val v_srgb : ?a:float -> float -> float -> float -> Gg.color
  val v_srgbi : ?a:float -> int -> int -> int -> Gg.color
  val r : Gg.color -> float
  val g : Gg.color -> float
  val b : Gg.color -> float
  val a : Gg.color -> float
  val void : Gg.color
  val black : Gg.color
  val gray : ?a:float -> float -> Gg.color
  val white : Gg.color
  val red : Gg.color
  val green : Gg.color
  val blue : Gg.color
  val blend : Gg.color -> Gg.color -> Gg.color
  val clamp : Gg.color -> Gg.color
  val with_a : Gg.color -> float -> Gg.color
  type srgb = Gg.v4
  val of_srgb : Gg.Color.srgb -> Gg.color
  val to_srgb : Gg.color -> Gg.Color.srgb
  type luv = Gg.v4
  val of_luv : Gg.Color.luv -> Gg.color
  val to_luv : Gg.color -> Gg.Color.luv
  type lch_uv = Gg.v4
  val of_lch_uv : Gg.Color.lch_uv -> Gg.color
  val to_lch_uv : Gg.color -> Gg.Color.lch_uv
  type lab = Gg.v4
  val of_lab : Gg.v4 -> Gg.color
  val to_lab : Gg.color -> Gg.v4
  type lch_ab = Gg.v4
  val of_lch_ab : Gg.Color.lch_ab -> Gg.color
  val to_lch_ab : Gg.color -> Gg.Color.lch_ab
  type space =
      [ `CLR2
      | `CLR3
      | `CLR4
      | `CLR5
      | `CLR6
      | `CLR7
      | `CLR8
      | `CLR9
      | `CLRA
      | `CLRB
      | `CLRC
      | `CLRD
      | `CLRE
      | `CLRF
      | `CMY
      | `CMYK
      | `Gray
      | `HLS
      | `HSV
      | `Lab
      | `Luv
      | `RGB
      | `XYZ
      | `YCbr
      | `Yxy ]
  val space_dim : Gg.Color.space -> int
  val pp_space : Format.formatter -> Gg.Color.space -> unit
  type profile
  val profile_of_icc : string -> Gg.Color.profile option
  val profile_to_icc : Gg.Color.profile -> string
  val profile_space : Gg.Color.profile -> Gg.Color.space
  val profile_dim : Gg.Color.profile -> int
  val p_gray_l : Gg.Color.profile
  val p_rgb_l : Gg.Color.profile
end