# Module type BatPathGen.StringType

    module type StringType = sig .. end

This signature lists few basic operations provided by all string types.

The actual implementation may use any (coherent) scheme of indexing of strings. Below the term 'indexing unit' can stay either for byte or character (or whatever employed by the implementation). This determines meaning of all `int` arguments and results (excluding result of `compare`).

    type t

Type for strings.

    val length : t -> int

Length - number of indexing units

    type tchar

Character type used by `t`.

    val get : t -> int -> tchar

Usual get function.

    val lift_char : char -> tchar

Convert Latin-1 character to `tchar`.

    val lift : string -> t

Convert from UTF-8 string of primitive `string` type.

    val to_string : t -> string

Convert to primitive string with UTF-8 content.

    val concat_with_separators : t ->
           t list -> t

`concat_with_separators sep lst` catenates all n elements of `lst` inserting (n-1) copies of `sep` in between.

    val compare : t -> t -> int

Usual comparison function.

    val iter : (tchar -> unit) -> t -> unit

    val iteri : (int -> tchar -> unit) ->
           t -> unit

    val sub : t -> int -> int -> t

As `String.sub`, but indexed in specific way.

    val rindex : t -> char -> int

    module Parse: sig .. end