sig   type t = string * int * int   val empty : string * int * int   val is_empty : 'a * 'b * int -> bool   val get : string * int * '-> int -> char   val length : 'a * 'b * '-> 'c   val sub : 'a * int * '-> int -> '-> 'a * int * 'c   val extend : 'a * 'b * int -> 'a * 'b * int end