library;
import self as self;
import "dart:core" as core;

static method main() → dynamic {
  core::print((#C1) is () →* dynamic);
  core::print((<T extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
  core::print((<T extends core::num*>(T* x) → T* => x).{core::Object::runtimeType});
  core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType});
  core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
  core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
  core::print((<T extends core::List<core::List<T*>*>* = core::List<core::List<dynamic>*>*>(T* x) → T* => x).{core::Object::runtimeType});
}

constants  {
  #C1 = tearoff self::main
}
