# Functor Make_substring.F

    module F: functor (Base : Base) -> sig .. end

Parameters:

`Base` | : | `Base`

    type base = Make_substring.Base.t

    type t = {

`` | `base : `Make_substring.Base.t`;`
`` | `pos : `int`;`
`` | `len : `int`;`

}

    val base : t -> Make_substring.Base.t

    val pos : t -> int

    val length : t -> int

    val create : ?pos:int -> ?len:int -> Make_substring.Base.t -> t

    val drop_prefix : t -> int -> t

    val drop_suffix : t -> int -> t

    val prefix : t -> int -> t

    val suffix : t -> int -> t

    val blit_to_string : t -> dst:Std_internal.String.t -> dst_pos:int -> unit

    val blit_to_bigstring : t -> dst:Make_substring.bigstring -> dst_pos:int -> unit

    val blit_from_string : t -> src:string -> src_pos:int -> len:int -> unit

    val blit_from_bigstring : t ->
           src:Make_substring.bigstring -> src_pos:int -> len:int -> unit

    val of_string : string -> t

    val of_bigstring : Make_substring.bigstring -> t

    val to_string : t -> Std_internal.String.t

    val to_bigstring : t -> Bigstring.t

    val concat : t Std_internal.List.t -> t

    val concat_string : t Std_internal.List.t -> Std_internal.String.t

    val concat_bigstring : t Std_internal.List.t -> Bigstring.t