// @dart = 2.9
library test.mixin_library;

f() => 2;
V() => 87;
_private() => 117;

class Mixin<T> {
  var x = f(), y, z;
  T t;
  foo() => super.foo() + f();
  T g(T a) => null;
  h() => V();
  l() => _private();
  _privateMethod() => 49;
  publicMethod() => _privateMethod();
}

foo(m) => m._privateMethod();
