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 = Sys_utils.Cpu_use.t
      val get : ?pid:Core.Std.Pid.t -> unit -> t
      val update_exn : t -> unit
      val cpu_use : t -> float
      val resident_mem_use_in_kb : t -> float
      val age : t -> Core.Std.Time.Span.t
      val fds : t -> int
    end
  module Lsb_release :
    sig
      type t =
        Sys_utils.Lsb_release.t = {
        distributor_id : string;
        release : string;
        codename : string;
      }
      val codename : t -> string
      val release : t -> string
      val distributor_id : t -> string
      module Fields :
        sig
          val names : string list
          val codename : (t, string) Fieldslib.Field.t
          val release : (t, string) Fieldslib.Field.t
          val distributor_id : (t, string) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            distributor_id:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            release:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            codename:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            distributor_id:((t, string) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> string) * 'compile_acc__) ->
            release:((t, string) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            codename:((t, string) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> t) * 'compile_acc__
          val create :
            distributor_id:string -> release:string -> codename:string -> t
          val map :
            distributor_id:((t, string) Fieldslib.Field.t -> string) ->
            release:((t, string) Fieldslib.Field.t -> string) ->
            codename:((t, string) Fieldslib.Field.t -> string) -> t
          val iter :
            distributor_id:((t, string) Fieldslib.Field.t -> unit) ->
            release:((t, string) Fieldslib.Field.t -> unit) ->
            codename:((t, string) Fieldslib.Field.t -> unit) -> unit
          val for_all :
            distributor_id:((t, string) Fieldslib.Field.t -> bool) ->
            release:((t, string) Fieldslib.Field.t -> bool) ->
            codename:((t, string) Fieldslib.Field.t -> bool) -> bool
          val exists :
            distributor_id:((t, string) Fieldslib.Field.t -> bool) ->
            release:((t, string) Fieldslib.Field.t -> bool) ->
            codename:((t, string) Fieldslib.Field.t -> bool) -> bool
          val to_list :
            distributor_id:((t, string) Fieldslib.Field.t -> 'elem__) ->
            release:((t, string) Fieldslib.Field.t -> 'elem__) ->
            codename:((t, string) Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
            'x0 list
          module Direct :
            sig
              val iter :
                t ->
                distributor_id:((t, string) Fieldslib.Field.t ->
                                t -> string -> unit) ->
                release:((t, string) Fieldslib.Field.t -> t -> string -> unit) ->
                codename:((t, string) Fieldslib.Field.t ->
                          t -> string -> unit) ->
                unit
              val fold :
                t ->
                init:'acc__ ->
                distributor_id:('acc__ ->
                                (t, string) Fieldslib.Field.t ->
                                t -> string -> 'acc__) ->
                release:('acc__ ->
                         (t, string) Fieldslib.Field.t ->
                         t -> string -> 'acc__) ->
                codename:('acc__ ->
                          (t, string) Fieldslib.Field.t ->
                          t -> string -> 'acc__) ->
                'acc__
            end
        end
      val query : unit -> t
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
end