library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  method foo({core::bool? c = true, core::bool? a = null}) → dynamic
    ;
}
class B extends self::A {
  synthetic constructor •() → self::B
    ;
  method foo({core::bool? c = true, core::bool? a = null}) → dynamic
    ;
}
class C extends self::B {
  synthetic constructor •() → self::C
    ;
  method foo({core::bool? c = true, core::bool? a = null}) → dynamic
    ;
}
class A1 extends core::Object {
  synthetic constructor •() → self::A1
    ;
  method foo({core::bool? a = true, core::bool? c = null}) → dynamic
    ;
}
class B1 extends self::A1 {
  synthetic constructor •() → self::B1
    ;
  method foo({core::bool? a = true, core::bool? c = null}) → dynamic
    ;
}
class C1 extends self::B1 {
  synthetic constructor •() → self::C1
    ;
  method foo({core::bool? a = true, core::bool? c = null}) → dynamic
    ;
}
static method main() → dynamic
  ;
