| class Class<T> {} | 
 |  | 
 | class ConcreteClass implements Class<ConcreteClass> {} | 
 |  | 
 | typedef F<X extends Class<X>> = X; | 
 |  | 
 | class G<X extends Class<X>> {} | 
 |  | 
 | t1a(o) => o as F; | 
 |  | 
 | t2a(o) => o as F<dynamic>; | 
 |  | 
 | t3a(o) => o as F<Class>; | 
 |  | 
 | t4a(o) => o as F<Class<dynamic>>; | 
 |  | 
 | t5a(o) => o as F<ConcreteClass>; | 
 |  | 
 | t6a(o) => o as F<Class<ConcreteClass>>; | 
 |  | 
 | t7a(o) => o as F<Object>; | 
 |  | 
 | t8a(o) => o as F<int>; | 
 |  | 
 | s1a(o) => o as G; | 
 |  | 
 | s2a(o) => o as G<dynamic>; | 
 |  | 
 | s3a(o) => o as G<Class>; | 
 |  | 
 | s4a(o) => o as G<Class<dynamic>>; | 
 |  | 
 | s5a(o) => o as G<ConcreteClass>; | 
 |  | 
 | s6a(o) => o as G<Class<ConcreteClass>>; | 
 |  | 
 | s7a(o) => o as G<Object>; | 
 |  | 
 | s8a(o) => o as G<int>; | 
 |  | 
 | t1b(o) => o is F; | 
 |  | 
 | t2b(o) => o is F<dynamic>; | 
 |  | 
 | t3b(o) => o is F<Class>; | 
 |  | 
 | t4b(o) => o is F<Class<dynamic>>; | 
 |  | 
 | t5b(o) => o is F<ConcreteClass>; | 
 |  | 
 | t6b(o) => o is F<Class<ConcreteClass>>; | 
 |  | 
 | t7b(o) => o is F<Object>; | 
 |  | 
 | t8b(o) => o is F<int>; | 
 |  | 
 | s1b(o) => o is G; | 
 |  | 
 | s2b(o) => o is G<dynamic>; | 
 |  | 
 | s3b(o) => o is G<Class>; | 
 |  | 
 | s4b(o) => o is G<Class<dynamic>>; | 
 |  | 
 | s5b(o) => o is G<ConcreteClass>; | 
 |  | 
 | s6b(o) => o is G<Class<ConcreteClass>>; | 
 |  | 
 | s7b(o) => o is G<Object>; | 
 |  | 
 | s8b(o) => o is G<int>; | 
 |  | 
 | main() {} |