sig
  type t
  type more_t = More | Last
  type 'a state_t =
      [ `Exception of exn | `Final of '| `Loaded of Cf_poll.t | `Unloaded ]
  class type virtual ['a] event =
    object
      constraint 'a = [> 'Cf_poll.state_t ]
      val mutable put_ : < get : 'b > Queue.t option
      val mutable state_ : 'a
      method canget : bool
      method get : 'b
      method load : ?q:< get : 'b > Queue.t -> Cf_poll.t -> unit
      method private load_ : Cf_poll.t -> unit
      method private virtual service : Cf_poll.t -> 'a
      method unload : unit
      method private unload_ : Cf_poll.t -> unit
    end
  exception Not_ready
  val create : unit -> Cf_poll.t
  val cycle : Cf_poll.t -> Cf_poll.more_t
  type 'a file_state_t =
      [ `Exception of exn
      | `Final of 'a
      | `Loaded of Cf_poll.t
      | `Unloaded
      | `Working of Cf_poll.t * 'a ]
  type rwx_t = [ `R | `W | `X ]
  class virtual ['a] file :
    [< Cf_poll.rwx_t ] ->
    Unix.file_descr ->
    object
      constraint 'a = [> 'Cf_poll.file_state_t ]
      val mutable put_ : < get : 'b > Queue.t option
      val mutable state_ : 'a
      method canget : bool
      method get : 'b
      method load : ?q:< get : 'b > Queue.t -> t -> unit
      method private load_ : t -> unit
      method private virtual service : Cf_poll.t -> 'a
      method unload : unit
      method private unload_ : t -> unit
    end
  class virtual ['a] signal :
    int ->
    object
      constraint 'a = [> 'Cf_poll.state_t ]
      val mutable put_ : < get : 'b > Queue.t option
      val mutable state_ : 'a
      method canget : bool
      method get : 'b
      method load : ?q:< get : 'b > Queue.t -> t -> unit
      method private load_ : t -> unit
      method private virtual service : t -> 'a
      method unload : unit
      method private unload_ : t -> unit
    end
  class virtual ['a] time :
    Cf_tai64n.t ->
    object
      constraint 'a = [> 'b state_t ]
      val mutable epoch_ : Cf_tai64n.t
      val mutable put_ : < get : 'b > Queue.t option
      val mutable state_ : 'a
      method canget : bool
      method get : 'b
      method load : ?q:< get : 'b > Queue.t -> t -> unit
      method private load_ : t -> unit
      method private virtual service : t -> 'a
      method unload : unit
      method private unload_ : t -> unit
    end
  class virtual ['a] idle :
    object
      constraint 'a = [> 'b state_t ]
      val mutable epoch_ : Cf_tai64n.t option
      val mutable put_ : < get : 'b > Queue.t option
      val mutable state_ : 'a
      method canget : bool
      method get : 'b
      method load : ?q:< get : 'b > Queue.t -> t -> unit
      method private load_ : t -> unit
      method private virtual service : t -> 'a
      method unload : unit
      method private unload_ : t -> unit
    end
end