sig
  val create : int -> 'a Sprite.set
  val add : 'a Sprite.set -> 'a Sprite.t -> unit
  val del : 'a Sprite.set -> 'a Sprite.t -> unit
  val clear : 'a Sprite.set -> unit
  val iter : ('a Sprite.t -> unit) -> 'a Sprite.set -> unit
  val iter_data : ('a Sprite.t -> 'a -> unit) -> 'a Sprite.set -> unit
  val set_boundary : 'a Sprite.set -> int -> int -> int -> int -> unit
  val set_collision : 'a Sprite.set -> int -> int -> unit
  val mem : 'a Sprite.set -> 'a Sprite.t -> bool
  val fold : ('a -> 'b Sprite.t -> 'a) -> 'b Sprite.set -> 'a -> 'a
  val fold_data :
    ('a -> 'b Sprite.t -> 'b -> 'a) -> 'b Sprite.set -> 'a -> 'a
end