sig
  type kind =
      [ `Line_loop
      | `Line_strip
      | `Line_strip_adjacency
      | `Lines
      | `Lines_adjacency
      | `Points
      | `Triangle_fan
      | `Triangle_strip
      | `Triangle_strip_adjacency
      | `Triangles
      | `Triangles_adjacency ]
  val pp_kind : Format.formatter -> kind -> unit
  type t = prim
  val create :
    ?tr:Gg.M4.t ->
    ?name:string ->
    ?first:int -> ?count:int -> ?index:Buf.t -> kind -> attr list -> prim
  val kind : prim -> kind
  val name : prim -> string
  val index : prim -> Buf.t option
  val first : prim -> int
  val count : prim -> int option
  val count_now : prim -> int
  val tr : prim -> Gg.M4.t
  val pp : Format.formatter -> prim -> unit
  val attrs : prim -> attr list
  val iter : (attr -> unit) -> prim -> unit
  val fold : ('-> attr -> 'a) -> '-> prim -> 'a
  val mem : prim -> string -> bool
  val find : prim -> string -> attr option
  val get : prim -> string -> attr
  val binfo : Lit.prim -> Lit.Renderer.Private.BInfo.t
  val set_binfo : Lit.prim -> Lit.Renderer.Private.BInfo.t -> unit
end