Object:
  superclasses:
  interfaces:
  classMembers:
    Object._haveSameRuntimeType
    Object.toString
    Object.runtimeType
    Object._toString
    Object._simpleInstanceOf
    Object._hashCodeRnd
    Object._instanceOf
    Object.noSuchMethod
    Object._objectHashCode
    Object._identityHashCode
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
  classSetters:

A:
  superclasses:
    Object
  interfaces:
  classMembers:
    Object.toString
    A.x
    Object.runtimeType
    Object._simpleInstanceOf
    Object._instanceOf
    Object.noSuchMethod
    Object._identityHashCode
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
  classSetters:

B:
  superclasses:
    Object
      -> A
  interfaces:
  classMembers:
    Object.toString
    A.x
    Object.runtimeType
    Object._simpleInstanceOf
    Object._instanceOf
    Object.noSuchMethod
    Object._identityHashCode
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
  classSetters:
    B.x

C:
  superclasses:
    Object
      -> A
        -> B
  interfaces:
  classMembers:
    Object.toString
    C.x
    Object.runtimeType
    Object._simpleInstanceOf
    Object._instanceOf
    Object.noSuchMethod
    Object._identityHashCode
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
  classSetters:
    C.x

Comparable:
  superclasses:
    Object
  interfaces:
  classMembers:
    Object.toString
    Object.runtimeType
    Object._simpleInstanceOf
    Object._instanceOf
    Object.noSuchMethod
    Object._identityHashCode
    Comparable.compareTo
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
    Comparable.compare
  classSetters:

num:
  Longest path to Object: 2
  superclasses:
    Object
  interfaces: Comparable<num>
  classMembers:
    num.~/
    num.<=
    num._equalToInteger
    num.isInfinite
    num.<
    num._returnDoubleNull
    num.Object.toString%num.toString
    num._returnIntNull
    num.+
    num.clamp
    num.toDouble
    num.ceil
    num.unary-
    num._mulFromInteger
    num.>=
    Object.runtimeType
    Object._simpleInstanceOf
    num.isNegative
    num.isNaN
    num.toStringAsExponential
    num./
    num.abs
    num._moduloFromInteger
    num._subFromInteger
    num._addFromInteger
    Object._instanceOf
    num.remainder
    num.isFinite
    num.toInt
    num.%
    num.sign
    Object.noSuchMethod
    num.toStringAsPrecision
    num.floorToDouble
    Object._identityHashCode
    num.>
    num.roundToDouble
    num.round
    num.floor
    num.compareTo
    num.Object.hashCode%num.hashCode
    num._truncDivFromInteger
    num.truncate
    num.-
    Object._simpleInstanceOfFalse
    num._greaterThanFromInteger
    num.ceilToDouble
    Object._simpleInstanceOfTrue
    num.Object.==%num.==
    num.truncateToDouble
    num.parse
    num.tryParse
    num.toStringAsFixed
    num._remainderFromInteger
    num.*
  classSetters:
  interfaceMembers:
    num.~/
    num.<=
    num._equalToInteger
    num.isInfinite
    num.<
    num._returnDoubleNull
    num.Object.toString%num.toString
    num._returnIntNull
    num.+
    num.clamp
    num.toDouble
    num.ceil
    num.unary-
    num._mulFromInteger
    num.>=
    Object.runtimeType
    Object._simpleInstanceOf
    num.isNegative
    num.isNaN
    num.toStringAsExponential
    num./
    num.abs
    num._moduloFromInteger
    num._subFromInteger
    num._addFromInteger
    Object._instanceOf
    num.remainder
    num.isFinite
    num.toInt
    num.%
    num.sign
    Object.noSuchMethod
    num.toStringAsPrecision
    num.floorToDouble
    Object._identityHashCode
    num.>
    num.roundToDouble
    num.round
    num.floor
    num.compareTo
    num.Object.hashCode%num.hashCode
    num._truncDivFromInteger
    num.truncate
    num.-
    Object._simpleInstanceOfFalse
    num._greaterThanFromInteger
    num.ceilToDouble
    Object._simpleInstanceOfTrue
    num.Object.==%num.==
    num.truncateToDouble
    num.parse
    num.tryParse
    num.toStringAsFixed
    num._remainderFromInteger
    num.*
  interfaceSetters:

int:
  Longest path to Object: 3
  superclasses:
    Object
      -> num
  interfaces: Comparable<num>
  classMembers:
    int._minInt64
    num.~/
    int.toSigned
    int._shrFromInteger
    int._throwFormatException
    int._parseBlock
    num.<=
    num._equalToInteger
    num.isInfinite
    num.<
    int._int64OverflowLimits
    int._parseRadix
    int.Object.toString%int.toString
    int._PARSE_LIMITS
    int._kNull
    num.+
    num.clamp
    num.toDouble
    int.ceil
    int.unary-
    num._mulFromInteger
    num.>=
    Object.runtimeType
    Object._simpleInstanceOf
    num.isNegative
    num.isNaN
    int._initInt64OverflowLimits
    int.isEven
    num.toStringAsExponential
    num./
    int.abs
    int._bitAndFromSmi
    int.|
    num._moduloFromInteger
    int.gcd
    int._int64UnsignedOverflowLimits
    int.<<
    num._subFromInteger
    num._addFromInteger
    int.toUnsigned
    int.toRadixString
    int._int64UnsignedSmiOverflowLimits
    Object._instanceOf
    num.remainder
    num.isFinite
    num.toInt
    num.%
    int._tryParseSmi
    int.sign
    int.>>
    Object.noSuchMethod
    num.toStringAsPrecision
    int.modInverse
    int.floorToDouble
    Object._identityHashCode
    num.>
    int.roundToDouble
    int.round
    int._maxInt64
    int.floor
    num.compareTo
    num.Object.hashCode%num.hashCode
    num._truncDivFromInteger
    int.truncate
    int.^
    int._shlFromInteger
    int.&
    num.-
    Object._simpleInstanceOfFalse
    num._greaterThanFromInteger
    int.bitLength
    int.ceilToDouble
    int.modPow
    int.isOdd
    int._bitAndFromInteger
    Object._simpleInstanceOfTrue
    num.Object.==%num.==
    int._bitOrFromInteger
    int.truncateToDouble
    int._bitXorFromInteger
    int.parse
    int.tryParse
    num.toStringAsFixed
    num._remainderFromInteger
    int._parse
    num.*
    int.~
  classSetters:
  interfaceMembers:
    int._minInt64
    num.~/
    int.toSigned
    int._shrFromInteger
    int._throwFormatException
    int._parseBlock
    num.<=
    num._equalToInteger
    num.isInfinite
    num.<
    int._int64OverflowLimits
    int._parseRadix
    int.Object.toString%int.toString
    int._PARSE_LIMITS
    int._kNull
    num.+
    num.clamp
    num.toDouble
    int.ceil
    int.unary-
    num._mulFromInteger
    num.>=
    Object.runtimeType
    Object._simpleInstanceOf
    num.isNegative
    num.isNaN
    int._initInt64OverflowLimits
    int.isEven
    num.toStringAsExponential
    num./
    int.abs
    int._bitAndFromSmi
    int.|
    num._moduloFromInteger
    int.gcd
    int._int64UnsignedOverflowLimits
    int.<<
    num._subFromInteger
    num._addFromInteger
    int.toUnsigned
    int.toRadixString
    int._int64UnsignedSmiOverflowLimits
    Object._instanceOf
    num.remainder
    num.isFinite
    num.toInt
    num.%
    int._tryParseSmi
    int.sign
    int.>>
    Object.noSuchMethod
    num.toStringAsPrecision
    int.modInverse
    int.floorToDouble
    Object._identityHashCode
    num.>
    int.roundToDouble
    int.round
    int._maxInt64
    int.floor
    num.compareTo
    num.Object.hashCode%num.hashCode
    num._truncDivFromInteger
    int.truncate
    int.^
    int._shlFromInteger
    int.&
    num.-
    Object._simpleInstanceOfFalse
    num._greaterThanFromInteger
    int.bitLength
    int.ceilToDouble
    int.modPow
    int.isOdd
    int._bitAndFromInteger
    Object._simpleInstanceOfTrue
    num.Object.==%num.==
    int._bitOrFromInteger
    int.truncateToDouble
    int._bitXorFromInteger
    int.parse
    int.tryParse
    num.toStringAsFixed
    num._remainderFromInteger
    int._parse
    num.*
    int.~
  interfaceSetters:
