sig
  type t
  val create : [ `compile | `compile_and_execute ] -> GlList.t
  val ends : unit -> unit
  val call : GlList.t -> unit
  val delete : GlList.t -> unit
  type base
  val nth : GlList.base -> pos:int -> GlList.t
  val is_list : GlList.t -> bool
  val gen_lists : len:int -> GlList.base
  val begins : GlList.t -> mode:[ `compile | `compile_and_execute ] -> unit
  val delete_lists : GlList.base -> len:int -> unit
  val call_lists :
    ?base:GlList.base -> [ `byte of string | `int of int array ] -> unit
end