sig
  type 'a t = 'Lit.uniform
  val name : 'Lit.Uniform.t -> string
  val value : 'Lit.Uniform.t -> 'a
  val set_value : 'Lit.Uniform.t -> '-> 'Lit.Uniform.t
  val v : 'Lit.Uniform.t -> '-> 'Lit.Uniform.t
  val set_to_model_to_world : Gg.m4 Lit.Uniform.t -> Gg.m4 Lit.Uniform.t
  val is_value_builtin : 'Lit.uniform -> bool
  val pp : Format.formatter -> 'Lit.uniform -> unit
  val bool : string -> bool -> bool Lit.uniform
  val int : string -> int -> int Lit.uniform
  val float : string -> float -> float Lit.uniform
  val v2 : string -> Gg.v2 -> Gg.v2 Lit.uniform
  val v3 : string -> Gg.v3 -> Gg.v3 Lit.uniform
  val v4 : string -> Gg.v4 -> Gg.v4 Lit.uniform
  val m2 : string -> Gg.m2 -> Gg.m2 Lit.uniform
  val m3 : string -> Gg.m3 -> Gg.m3 Lit.uniform
  val m4 : string -> Gg.m4 -> Gg.m4 Lit.uniform
  val tex : string -> Lit.tex -> Lit.tex Lit.uniform
  val model_to_world : string -> Gg.m4 Lit.uniform
  val model_to_view : string -> Gg.m4 Lit.uniform
  val model_to_clip : string -> Gg.m4 Lit.uniform
  val model_normal_to_view : string -> Gg.m3 Lit.uniform
  val world_to_view : string -> Gg.m4 Lit.uniform
  val world_to_clip : string -> Gg.m4 Lit.uniform
  val view_to_clip : string -> Gg.m4 Lit.uniform
  val viewport_o : string -> Gg.v2 Lit.uniform
  val viewport_size : string -> Gg.v2 Lit.uniform
  type builtin =
      [ `Model_normal_to_view
      | `Model_to_clip
      | `Model_to_view
      | `Model_to_world
      | `View_to_clip
      | `Viewport_o
      | `Viewport_size
      | `World_to_clip
      | `World_to_view ]
  type value_untyped =
      [ `Bool of bool
      | `Builtin of Lit.Uniform.builtin
      | `Float of float
      | `Int of int
      | `M2 of Gg.m2
      | `M3 of Gg.m3
      | `M4 of Gg.m4
      | `Tex of Lit.tex
      | `V2 of Gg.v2
      | `V3 of Gg.v3
      | `V4 of Gg.v4 ]
  type set
  val empty : Lit.Uniform.set
  val is_empty : Lit.Uniform.set -> bool
  val add : Lit.Uniform.set -> 'Lit.uniform -> Lit.Uniform.set
  val ( + ) : Lit.Uniform.set -> 'Lit.uniform -> Lit.Uniform.set
  val mem_named : Lit.Uniform.set -> string -> bool
  val find :
    Lit.Uniform.set -> 'Lit.uniform -> Lit.Uniform.value_untyped option
  val find_named :
    Lit.Uniform.set -> string -> Lit.Uniform.value_untyped option
  val get : Lit.Uniform.set -> 'Lit.uniform -> Lit.Uniform.value_untyped
  val get_named : Lit.Uniform.set -> string -> Lit.Uniform.value_untyped
  val fold :
    ('-> string -> Lit.Uniform.value_untyped -> 'a) ->
    '-> Lit.Uniform.set -> 'a
  val pp_set : Format.formatter -> Lit.Uniform.set -> unit
end