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

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

    }
    
    /// 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
