Future<String> readLine() async { try { return await _lineStream.next; } on StateError catch (_) { throw EOF(); } }