 	}
 
 	/// Instantiates a new descriptor pair.
-	//TODO: Swift 3 API guidelines?
 	class func create(_ queue: DispatchQueue, _ group: DispatchGroup) -> Result<Pipe, TaskError> {
 		var fildes: [Int32] = [ 0, 0 ]
 		if pipe(&fildes) == 0 {

extension TaskEvent: CustomStringConvertible {
	public var description: String {
		func dataDescription(_ data: Data) -> String {
			// TODO: Check whether this can be done without NSString
			return NSString(data: data, encoding: String.Encoding.utf8.rawValue).map { $0 as String } ?? data.description
		}

		switch self {

				}

				return SignalProducer { observer, disposable in
					func startAggregating(_ producer: Pipe.ReadProducer) -> Pipe.ReadProducer {
						let aggregated = MutableProperty<Aggregation?>(nil)

