| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 | import "dart:async" as asy; | 
 |  | 
 | import "dart:async"; | 
 |  | 
 | extension Extension<T extends core::Object* = dynamic> on asy::Stream<T*>* { | 
 |   method call = self::Extension|call; | 
 |   tearoff call = self::Extension|get#call; | 
 | } | 
 | static method main() → void { | 
 |   asy::StreamController<core::String*>* controller = asy::StreamController::•<core::String*>(); | 
 |   let final asy::StreamController<core::String*>* #t1 = controller in let final (dynamic) →* Null #t2 = (dynamic s) → Null { | 
 |     core::print(s); | 
 |   } in self::Extension|call<core::String*>(#t1.{asy::StreamController::stream}{asy::Stream<core::String*>*}, #t2); | 
 | } | 
 | static method Extension|call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|call::T*>* #this, core::Function* onData) → asy::StreamSubscription<self::Extension|call::T*>* { | 
 |   return #this.{asy::Stream::listen}((self::Extension|call::T* d) → Null { | 
 |     onData(d); | 
 |   }){((self::Extension|call::T*) →* void, {cancelOnError: core::bool*, onDone: () →* void, onError: core::Function*}) →* asy::StreamSubscription<self::Extension|call::T*>*}; | 
 | } | 
 | static method Extension|get#call<T extends core::Object* = dynamic>(lowered final asy::Stream<self::Extension|get#call::T*>* #this) → (core::Function*) →* asy::StreamSubscription<self::Extension|get#call::T*>* | 
 |   return (core::Function* onData) → asy::StreamSubscription<self::Extension|get#call::T*>* => self::Extension|call<self::Extension|get#call::T*>(#this, onData); |