T top<T>(T value) => value;

class C {
  T inst<T>(T value) => value;
  static T stat<T>(T value) => value;
  void method() {}
}

class D extends C with M {
  void method() {}
}

extension Ext on C {
  T einst<T>(T value) => value;
  static T estat<T>(T value) => value;
  void emethod() {}
}

mixin M on C {
  T minst<T>(T value) => value;
  static T mstat<T>(T value) => value;
  void mmethod() {}
}
typedef ListList<T> = List<List<T>>;
void main() {}
