sig
  module OCaml :
    sig
      val length : java'lang'String java_instance -> int
      val get : java'lang'String java_instance -> int -> int
      val make : int -> int -> java'lang'String java_instance
      val copy :
        java'lang'String java_instance -> java'lang'String java_instance
      val sub :
        java'lang'String java_instance ->
        int -> int -> java'lang'String java_instance
      val concat :
        java'lang'String java_instance ->
        java'lang'String java_instance list -> java'lang'String java_instance
      val iter : (int -> unit) -> java'lang'String java_instance -> unit
      val iteri :
        (int -> int -> unit) -> java'lang'String java_instance -> unit
      val map :
        (int -> int) ->
        java'lang'String java_instance -> java'lang'String java_instance
      val trim :
        java'lang'String java_instance -> java'lang'String java_instance
      val escaped :
        java'lang'String java_instance -> java'lang'String java_instance
      val index : java'lang'String java_instance -> int -> int
      val rindex : java'lang'String java_instance -> int -> int
      val index_from : java'lang'String java_instance -> int -> int -> int
      val rindex_from : java'lang'String java_instance -> int -> int -> int
      val contains : java'lang'String java_instance -> int -> bool
      val contains_from :
        java'lang'String java_instance -> int -> int -> bool
      val rcontains_from :
        java'lang'String java_instance -> int -> int -> bool
      val uppercase :
        java'lang'String java_instance -> java'lang'String java_instance
      val lowercase :
        java'lang'String java_instance -> java'lang'String java_instance
      val capitalize :
        java'lang'String java_instance -> java'lang'String java_instance
      val uncapitalize :
        java'lang'String java_instance -> java'lang'String java_instance
      type t = java'lang'String java_instance
      val compare : JavaString.OCaml.t -> JavaString.OCaml.t -> int
      val compare_ignore_case :
        JavaString.OCaml.t -> JavaString.OCaml.t -> int
    end
  type t = java'lang'String java_instance
  val char_at : JavaString.t -> java_int -> java_char
  val length : JavaString.t -> java_int
  val is_empty : JavaString.t -> bool
  val trim : JavaString.t -> JavaString.t
  val split :
    JavaString.t ->
    JavaString.t -> java'lang'String java_instance java_reference_array
  val matches : JavaString.t -> JavaString.t -> bool
  val index_of : JavaString.t -> JavaString.t -> java_int
  val last_index_of : JavaString.t -> JavaString.t -> java_int
  val starts_with : JavaString.t -> JavaString.t -> bool
  val ends_with : JavaString.t -> JavaString.t -> bool
  val substring : JavaString.t -> java_int -> java_int -> JavaString.t
  val to_char_array : JavaString.t -> java_char java_char_array
  val to_lower_case : JavaString.t -> JavaString.t
  val to_upper_case : JavaString.t -> JavaString.t
  val equals : JavaString.t -> JavaString.t -> bool
  val equals_ignore_case : JavaString.t -> JavaString.t -> bool
  val compare_to : JavaString.t -> JavaString.t -> java_int
  val compare_to_ignore_case : JavaString.t -> JavaString.t -> java_int
  external of_string : string -> java'lang'String java_instance
    = "ocamljava_javastring_of_string"
  external to_string : java'lang'String java_instance -> string
    = "ocamljava_javastring_to_string"
  val null : java'lang'String java_instance
  external is_null : java'lang'String java_instance -> bool = "java is_null"
  external is_not_null : java'lang'String java_instance -> bool
    = "java is_not_null"
  external print_string : java'lang'String java_instance -> unit
    = "ocamljava_javastring_print_string"
  external print_endline : java'lang'String java_instance -> unit
    = "ocamljava_javastring_print_endline"
  external print_newline : unit -> unit
    = "ocamljava_javastring_print_newline"
  external prerr_string : java'lang'String java_instance -> unit
    = "ocamljava_javastring_prerr_string"
  external prerr_endline : java'lang'String java_instance -> unit
    = "ocamljava_javastring_prerr_endline"
  external prerr_newline : unit -> unit
    = "ocamljava_javastring_prerr_newline"
  external output_string :
    Pervasives.out_channel -> java'lang'String java_instance -> unit
    = "ocamljava_javastring_output_string"
  external read_line : unit -> java'lang'String java_instance
    = "ocamljava_javastring_read_line"
  external input_line :
    Pervasives.in_channel -> java'lang'String java_instance
    = "ocamljava_javastring_input_line"
  val wrap :
    java'lang'String java_instance -> java'lang'String java_instance option
  val unwrap : 'a java_instance option -> 'a java_instance
end