     var descriptor: Int32
     
     /// The underlying TCP socket
-    let socket: ByteStream
+    let socket: ClosableStream
     
     /// The queue to read on
     let queue: DispatchQueue

    }()
}

public final class SSLStream<ByteStream>: Async.Stream, ClosableStream 
    where ByteStream: Async.Stream, 
        ByteStream.Output == ByteBuffer, 
        ByteStream.Input == ByteBuffer, 
        ByteStream: ClosableStream 
{
    /// See OutputStream.Output
    public typealias Output = ByteBuffer
    

    }
    
    /// Creates a new SSLStream on top of a socket
    public init<ByteStream>(socket: ByteStream, descriptor: Int32, queue: DispatchQueue) throws where
        ByteStream: Async.Stream,
        ByteStream.Output == ByteBuffer,
        ByteStream.Input == ByteBuffer
    {
        self.socket = socket
        self.descriptor = descriptor
        self.queue = queue
