sig   module Ssh :     sig       type t = {         address : string;         port : int option;         user : string option;         add_ssh_options : string list;       }       val to_yojson : Ketrew_pure.Host.Ssh.t -> Yojson.Safe.json       val of_yojson :         Yojson.Safe.json ->         Ketrew_pure.Host.Ssh.t Ppx_deriving_yojson_runtime.error_or       val configure_ssh_batch_option :         [ `Custom of string | `Dropbear | `Openssh ] -> unit       val ssh_batch_option : Ketrew_pure.Host.Ssh.t -> string     end   type default_shell   val default_shell_to_yojson :     Ketrew_pure.Host.default_shell -> Yojson.Safe.json   val default_shell_of_yojson :     Yojson.Safe.json ->     Ketrew_pure.Host.default_shell Ppx_deriving_yojson_runtime.error_or   type t   val to_yojson : Ketrew_pure.Host.t -> Yojson.Safe.json   val of_yojson :     Yojson.Safe.json ->     Ketrew_pure.Host.t Ppx_deriving_yojson_runtime.error_or   val default_shell :     ?binary:string ->     ?options:string list ->     ?command_option:string -> string -> Ketrew_pure.Host.default_shell   val localhost :     ?execution_timeout:Internal_pervasives.Time.t ->     ?default_shell:Ketrew_pure.Host.default_shell ->     ?playground:Path.t -> ?name:string -> unit -> Ketrew_pure.Host.t   val tmp_on_localhost : Ketrew_pure.Host.t   val ssh :     ?execution_timeout:Internal_pervasives.Time.t ->     ?add_ssh_options:string list ->     ?default_shell:Ketrew_pure.Host.default_shell ->     ?playground:Path.t ->     ?port:int -> ?user:string -> ?name:string -> string -> Ketrew_pure.Host.t   val named :     ?execution_timeout:Internal_pervasives.Time.t ->     ?default_shell:Ketrew_pure.Host.default_shell ->     ?playground:Path.t -> string -> Ketrew_pure.Host.t   val with_ssh_connection :     Ketrew_pure.Host.t -> Ketrew_pure.Host.Ssh.t -> Ketrew_pure.Host.t   val shell_of_default_shell : Ketrew_pure.Host.t -> string -> string list   val of_uri :     Internal_pervasives.Uri.t ->     (Ketrew_pure.Host.t, [> `Host_uri_parsing_error of string * string ])     Pvem.Result.t   val of_string :     string ->     (Ketrew_pure.Host.t, [> `Host_uri_parsing_error of string * string ])     Pvem.Result.t   val to_uri : Ketrew_pure.Host.t -> Internal_pervasives.Uri.t   val to_string_hum : Ketrew_pure.Host.t -> string   val log : Ketrew_pure.Host.t -> Internal_pervasives.Log.t   val markup : Ketrew_pure.Host.t -> Internal_pervasives.Display_markup.t   val execution_timeout :     Ketrew_pure.Host.t -> Internal_pervasives.Time.t option   val connection :     Ketrew_pure.Host.t ->     [ `Localhost | `Named of string | `Ssh of Ketrew_pure.Host.Ssh.t ]   val playground : Ketrew_pure.Host.t -> Path.t option end