functor
  (Elt : Elt) (Src : sig
                       type t
                       val create : len:int -> t
                       val length : t -> int
                       val get : t -> int -> Elt.t
                       val set : t -> int -> Elt.t -> unit
                       val sexp_of_t : t -> Sexplib.Sexp.t
                     end) (Dst : sig
                                   type t
                                   val create : len:int -> t
                                   val length : t -> int
                                   val get : t -> int -> Elt.t
                                   val set : t -> int -> Elt.t -> unit
                                   val sexp_of_t : t -> Sexplib.Sexp.t
                                   val unsafe_blit :
                                     (Src.t, t) Blit_intf.blit
                                 end->
  sig
    val blit : (Src.t, Dst.t) blit
    val blito : (Src.t, Dst.t) blito
    val unsafe_blit : (Src.t, Dst.t) blit
    val sub : (Src.t, Dst.t) sub
    val subo : (Src.t, Dst.t) subo
  end