sig   module Bytes :     sig       external length : bytes -> int = "%string_length"       external get : bytes -> int -> char = "%string_safe_get"       external set : bytes -> int -> char -> unit = "%string_safe_set"       external create : int -> bytes = "caml_create_string"       val make : int -> char -> bytes       val init : int -> (int -> char) -> bytes       val empty : bytes       val copy : bytes -> bytes       val of_string : string -> bytes       val to_string : bytes -> string       val sub : bytes -> int -> int -> bytes       val sub_string : bytes -> int -> int -> string       val extend : bytes -> int -> int -> bytes       val fill : bytes -> int -> int -> char -> unit       val blit : bytes -> int -> bytes -> int -> int -> unit       val blit_string : string -> int -> bytes -> int -> int -> unit       val concat : bytes -> bytes list -> bytes       val cat : bytes -> bytes -> bytes       val iter : (char -> unit) -> bytes -> unit       val iteri : (int -> char -> unit) -> bytes -> unit       val map : (char -> char) -> bytes -> bytes       val mapi : (int -> char -> char) -> bytes -> bytes       val trim : bytes -> bytes       val escaped : bytes -> bytes       val index : bytes -> char -> int       val rindex : bytes -> char -> int       val index_from : bytes -> int -> char -> int       val rindex_from : bytes -> int -> char -> int       val contains : bytes -> char -> bool       val contains_from : bytes -> int -> char -> bool       val rcontains_from : bytes -> int -> char -> bool       val uppercase : bytes -> bytes       val lowercase : bytes -> bytes       val capitalize : bytes -> bytes       val uncapitalize : bytes -> bytes       val uppercase_ascii : bytes -> bytes       val lowercase_ascii : bytes -> bytes       val capitalize_ascii : bytes -> bytes       val uncapitalize_ascii : bytes -> bytes       type t = bytes       val compare : t -> t -> int       val equal : t -> t -> bool       val unsafe_to_string : bytes -> string       val unsafe_of_string : string -> bytes       external unsafe_get : bytes -> int -> char = "%string_unsafe_get"       external unsafe_set : bytes -> int -> char -> unit         = "%string_unsafe_set"       external unsafe_blit : bytes -> int -> bytes -> int -> int -> unit         = "caml_blit_string" [@@noalloc]       external unsafe_fill : bytes -> int -> int -> char -> unit         = "caml_fill_string" [@@noalloc]     end   module Buffer :     sig       type t = Buffer.t       val create : int -> t       val contents : t -> string       val to_bytes : t -> bytes       val sub : t -> int -> int -> string       val blit : t -> int -> bytes -> int -> int -> unit       val nth : t -> int -> char       val length : t -> int       val clear : t -> unit       val reset : t -> unit       val add_char : t -> char -> unit       val add_string : t -> string -> unit       val add_bytes : t -> bytes -> unit       val add_substring : t -> string -> int -> int -> unit       val add_subbytes : t -> bytes -> int -> int -> unit       val add_substitute : t -> (string -> string) -> string -> unit       val add_buffer : t -> t -> unit       val add_channel : t -> in_channel -> int -> unit       val output_buffer : out_channel -> t -> unit     end   module Filename :     sig       val current_dir_name : string       val parent_dir_name : string       val dir_sep : string       val concat : string -> string -> string       val is_relative : string -> bool       val is_implicit : string -> bool       val check_suffix : string -> string -> bool       val chop_suffix : string -> string -> string       val chop_extension : string -> string       val basename : string -> string       val dirname : string -> string       val temp_file : ?temp_dir:string -> string -> string -> string       val open_temp_file :         ?mode:open_flag list ->         ?perms:int ->         ?temp_dir:string -> string -> string -> string * out_channel       val get_temp_dir_name : unit -> string       val set_temp_dir_name : string -> unit       val temp_dir_name : string       val quote : string -> string     end   exception Lexer_error of string   val download_dir :     OpamTypes.dirname OpamTypes.download ->     OpamTypes.generic_file OpamTypes.download   val download_file :     OpamTypes.filename OpamTypes.download ->     OpamTypes.generic_file OpamTypes.download   val string_of_download : 'OpamTypes.download -> string   val string_of_generic_file : OpamTypes.generic_file -> string   val string_of_address : OpamTypes.address -> string   val address_of_string : string -> OpamTypes.address   val parse_url :     OpamTypes.address -> OpamTypes.address * OpamTypes.repository_kind   val guess_version_control :     OpamTypes.dirname -> [ `darcs | `git | `hg ] option   val string_of_repository_kind : OpamTypes.repository_kind -> string   val repository_kind_of_string : string -> OpamTypes.repository_kind   val action_contents : 'OpamTypes.action -> 'a   val full_action_contents : 'OpamTypes.action -> 'a list   val string_of_cause : ('pkg -> string) -> 'pkg OpamTypes.cause -> string   val string_of_upload : OpamTypes.upload -> string   val repository_kind_of_pin_kind :     OpamTypes.pin_kind -> OpamTypes.repository_kind option   val pin_kind_of_string : string -> OpamTypes.pin_kind   val string_of_pin_kind : OpamTypes.pin_kind -> string   val pin_option_of_string :     ?kind:OpamTypes.pin_kind -> ?guess:bool -> string -> OpamTypes.pin_option   val string_of_pin_option : OpamTypes.pin_option -> string   val kind_of_pin_option : OpamTypes.pin_option -> OpamTypes.pin_kind   val pin_of_url :     OpamTypes.address * OpamTypes.repository_kind -> OpamTypes.pin_option   val string_of_shell : OpamTypes.shell -> string   val pos_null : OpamTypes.pos   val string_of_pos : OpamTypes.pos -> string   val string_of_relop : OpamTypes.relop -> string   val relop_of_string : string -> OpamTypes.relop   val string_of_logop : OpamTypes.logop -> string   val logop_of_string : string -> OpamTypes.logop   val string_of_pfxop : OpamTypes.pfxop -> string   val pfxop_of_string : string -> OpamTypes.pfxop   val filter_ident_of_string :     string ->     OpamTypes.name list * OpamTypes.variable * (string * string) option   val filter_deps :     ?build:bool ->     ?test:bool -> ?doc:bool -> OpamTypes.ext_formula -> OpamTypes.formula   val map_success :     ('-> 'b) ->     ('a, 'fail) OpamTypes.result -> ('b, 'fail) OpamTypes.result end