         reg.interested = interested
         registrations[Int(selectable.descriptor)] = reg
     }
-
+    
+    /// Deregister `Selectable`, must be registered via `register` before.
+    ///
+    /// After the `Selectable is deregistered no `IOEvent`s will be produced anymore for the `Selectable`.
+    ///
+    /// - parameters:
+    ///     - selectable: The `Selectable` to deregister.
     func deregister<S: Selectable>(selectable: S) throws {
         guard self.lifecycleState == .open else {
             throw IOError(errnoCode: EBADF, reason: "can't deregister from selector as it's \(self.lifecycleState).")

#endif
    }

     func whenReady(strategy: SelectorStrategy, _ fn: (SelectorEvent<R>) throws -> Void) throws -> Void {
        guard self.lifecycleState == .open else {
            throw IOError(errnoCode: EBADF, reason: "can't call whenReady for selector as it's \(self.lifecycleState).")
        }

#endif
    }

    /// Close the `Selector`.
    ///
    /// After closing the `Selector` it's no longer possible to use it.
    public func close() throws {
        guard self.lifecycleState == .open else {
            throw IOError(errnoCode: EBADF, reason: "can't close selector as it's \(self.lifecycleState).")
