     ///
     /// Note that while this returns an Int32, the value must always be greater than zero.
     public var networkStreamID: Int32? {
-        return (self.id.actualStreamID >= 0) ? self.id.actualStreamID : nil
+        return (self.actualStreamID >= 0) ? self.actualStreamID : nil
     }
 }
 
 // MARK:- Equatable conformance for HTTP2StreamID
 extension HTTP2StreamID: Equatable {
     public static func ==(lhs: HTTP2StreamID, rhs: HTTP2StreamID) -> Bool {
-        return lhs.id === rhs.id
+        return lhs === rhs
     }
 }
 

        precondition(oldValue == nil, "Mapping abstract stream ID that already has a mapping!")

        // Now we set the actual stream ID.
        streamID.id.actualStreamID = networkStreamID
    }

    /// Returns the internal `HTTP2StreamID` for a given network stream ID.

/// IDs are not meaningful outside of their connection.
// TODO(cory): We can remove this thread-safety limitation by embedding an atomic
// here, but NIO doesn't let us do it.
public class HTTP2StreamID {
    /// The actual stream ID. Set to a negative number in cases where we don't know the
    /// stream ID yet.
    fileprivate var actualStreamID: Int32 = -1

    /// The root stream on a HTTP/2 connection, stream 0.
    ///
