sig
  type t
  val detect : unit -> Host.t
  val equal : Host.t -> Host.t -> bool
  val pp : Host.t Fmt.t
  val json : Host.t Jsont.codec
  val defaults : Host.t list
  type os =
      [ `Cygwin
      | `Darwin
      | `DragonFly
      | `FreeBSD
      | `Linux
      | `NetBSD
      | `OpenBSD
      | `Other of string
      | `Unix
      | `Win32 ]
  val pp_os : Host.os Fmt.t
  val os : Host.t -> Host.os
end