sig
  val get_editor : unit -> string option
  val get_editor_exn : unit -> string
  val get_pager : unit -> string option
  val page_contents :
    ?pager:string ->
    ?pager_options:string list -> ?tmp_name:string -> string -> unit
  val pid_alive : Core.Std.Pid.t -> bool
  val get_groups : string -> string list
  val with_tmp : pre:string -> suf:string -> (string -> 'a) -> 'a
  val diff : ?options:string list -> string -> string -> string
  val ip_of_name : string -> string
  val getbyname_ip : unit -> string
  val ifconfig_ips : unit -> Core.Std.String.Set.t
  val checked_edit :
    ?create:bool ->
    check:(string -> string option) -> string -> [ `Abort | `Ok ]
  module Sexp_checked_edit :
    functor (S : Core.Std.Sexpable->
      sig
        val check : string -> string option
        val check_sexps : string -> string option
        val edit : ?create:bool -> string -> [ `Abort | `Ok ]
        val edit_sexps : ?create:bool -> string -> [ `Abort | `Ok ]
      end
  module Cpu_use :
    sig
      type t
      val get : ?pid:Core.Std.Pid.t -> unit -> Sys_utils.Cpu_use.t
      val update_exn : Sys_utils.Cpu_use.t -> unit
      val cpu_use : Sys_utils.Cpu_use.t -> float
      val resident_mem_use_in_kb : Sys_utils.Cpu_use.t -> float
      val age : Sys_utils.Cpu_use.t -> Core.Std.Time.Span.t
      val fds : Sys_utils.Cpu_use.t -> int
    end
  module Lsb_release :
    sig
      type t = {
        distributor_id : string;
        release : string;
        codename : string;
      }
      val codename : Sys_utils.Lsb_release.t -> string
      val release : Sys_utils.Lsb_release.t -> string
      val distributor_id : Sys_utils.Lsb_release.t -> string
      module Fields :
        sig
          val names : string list
          val codename : (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t
          val release : (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t
          val distributor_id :
            (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            distributor_id:('acc__ ->
                            (Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t -> 'acc__) ->
            release:('acc__ ->
                     (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     'acc__) ->
            codename:('acc__ ->
                      (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      'acc__) ->
            'acc__
          val make_creator :
            distributor_id:((Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> string) * 'compile_acc__) ->
            release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Sys_utils.Lsb_release.t) * 'compile_acc__
          val create :
            distributor_id:string ->
            release:string -> codename:string -> Sys_utils.Lsb_release.t
          val map :
            distributor_id:((Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t -> string) ->
            release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     string) ->
            codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      string) ->
            Sys_utils.Lsb_release.t
          val iter :
            distributor_id:((Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t -> unit) ->
            release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     unit) ->
            codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      unit) ->
            unit
          val for_all :
            distributor_id:((Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t -> bool) ->
            release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     bool) ->
            codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      bool) ->
            bool
          val exists :
            distributor_id:((Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t -> bool) ->
            release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     bool) ->
            codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      bool) ->
            bool
          val to_list :
            distributor_id:((Sys_utils.Lsb_release.t, string)
                            Fieldslib.Field.t -> 'elem__) ->
            release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                     'elem__) ->
            codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                      'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], Sys_utils.Lsb_release.t, 'x0)
            Fieldslib.Field.user -> 'x0 list
          module Direct :
            sig
              val iter :
                Sys_utils.Lsb_release.t ->
                distributor_id:((Sys_utils.Lsb_release.t, string)
                                Fieldslib.Field.t ->
                                Sys_utils.Lsb_release.t -> string -> unit) ->
                release:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                         Sys_utils.Lsb_release.t -> string -> unit) ->
                codename:((Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                          Sys_utils.Lsb_release.t -> string -> unit) ->
                unit
              val fold :
                Sys_utils.Lsb_release.t ->
                init:'acc__ ->
                distributor_id:('acc__ ->
                                (Sys_utils.Lsb_release.t, string)
                                Fieldslib.Field.t ->
                                Sys_utils.Lsb_release.t -> string -> 'acc__) ->
                release:('acc__ ->
                         (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                         Sys_utils.Lsb_release.t -> string -> 'acc__) ->
                codename:('acc__ ->
                          (Sys_utils.Lsb_release.t, string) Fieldslib.Field.t ->
                          Sys_utils.Lsb_release.t -> string -> 'acc__) ->
                'acc__
            end
        end
      val query : unit -> Sys_utils.Lsb_release.t
      val t_of_sexp : Sexplib.Sexp.t -> Sys_utils.Lsb_release.t
      val sexp_of_t : Sys_utils.Lsb_release.t -> Sexplib.Sexp.t
    end
end