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

  import "dart:core";

  static method useString(dart.core::String s) → void {
    dart.core::print("Hello from useString: ${s}");
  }
}
library from "org-dartlang-test:///main.dart" as main {

  import "org-dartlang-test:///b.dart";

  static method main() → dynamic {
    b::useString("hello");
  }
}

And 18 platform libraries:
 - dart:_http
 - dart:_builtin
 - dart:vmservice_io
 - dart:async
 - dart:cli
 - dart:collection
 - dart:convert
 - dart:core
 - dart:developer
 - dart:ffi
 - dart:nativewrappers
 - dart:_internal
 - dart:io
 - dart:isolate
 - dart:math
 - dart:mirrors
 - dart:typed_data
 - dart:_vmservice
