main = main::main;
library from "org-dartlang-test:///main.dart" as main {

  import "package:example/b.dart";

  static method main() → dynamic {
    dart.core::print("hello");
    b::b();
  }
}
library from "package:example/a.dart" as a {

  static method a() → dynamic {
    a::la1();
  }
  static method la1() → dynamic {
    dart.core::print("v0.1.0");
  }
}
library from "package:example/b.dart" as b {

  import "package:example/a.dart";

  static method b() → dynamic {
    a::a();
  }
}
