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:

Future:
  superclasses:
    Object
  interfaces:
  classMembers:
    Future._falseFuture
    Future.catchError
    Object.toString
    Future._kTrue
    Future.forEach
    Future.whenComplete
    Object.runtimeType
    Future.timeout
    Object._simpleInstanceOf
    Future.any
    Object._instanceOf
    Object.noSuchMethod
    Future.then
    Object._identityHashCode
    Future.doWhile
    Future._nullFuture
    Object.hashCode
    Future.wait
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
    Future.asStream
  classSetters:

MyFuture:
  superclasses:
    Object
  interfaces: Future<T>
  classMembers:
    Object.toString
    Object.runtimeType
    Object._simpleInstanceOf
    Object._instanceOf
    MyFuture.noSuchMethod
    MyFuture.then
    Object._identityHashCode
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
  classSetters:
  interfaceMembers:
    Future.catchError
    Object.toString
    Future.whenComplete
    Object.runtimeType
    Future.timeout
    Object._simpleInstanceOf
    Object._instanceOf
    MyFuture.noSuchMethod
    MyFuture.then
    Object._identityHashCode
    Object.hashCode
    Object._simpleInstanceOfFalse
    Object._simpleInstanceOfTrue
    Object.==
    Future.asStream
  interfaceSetters:
