functor (Elt : sig type t end->
  sig
    type elt = Elt.t
    type t = Elt.t array
    val empty : t
    val make : int -> elt -> t
    val length : t -> int
    val get : t -> int -> elt
    val set : t -> int -> elt -> unit
    val sub : t -> int -> int -> t
    val copy : t -> t
    val blit : t -> int -> t -> int -> int -> unit
    val iter : (elt -> unit) -> t -> unit
  end