sig
  type 'a t
  val debug : bool Unix_syscalls.Socket.Opt.t
  val broadcast : bool Unix_syscalls.Socket.Opt.t
  val reuseaddr : bool Unix_syscalls.Socket.Opt.t
  val keepalive : bool Unix_syscalls.Socket.Opt.t
  val dontroute : bool Unix_syscalls.Socket.Opt.t
  val oobinline : bool Unix_syscalls.Socket.Opt.t
  val acceptconn : bool Unix_syscalls.Socket.Opt.t
  val nodelay : bool Unix_syscalls.Socket.Opt.t
  val sndbuf : int Unix_syscalls.Socket.Opt.t
  val rcvbuf : int Unix_syscalls.Socket.Opt.t
  val error : int Unix_syscalls.Socket.Opt.t
  val typ : int Unix_syscalls.Socket.Opt.t
  val rcvlowat : int Unix_syscalls.Socket.Opt.t
  val sndlowat : int Unix_syscalls.Socket.Opt.t
  val linger : int option Unix_syscalls.Socket.Opt.t
  val rcvtimeo : float Unix_syscalls.Socket.Opt.t
  val sndtimeo : float Unix_syscalls.Socket.Opt.t
  val mcast_loop : bool Unix_syscalls.Socket.Opt.t
  val mcast_ttl : int Unix_syscalls.Socket.Opt.t
  val to_string : 'Unix_syscalls.Socket.Opt.t -> string
end