library test;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:math" as math;

import "dart:async";
import "dart:math" show Random;

static method test() → dynamic {
  () →* asy::Future<core::num*>* f = () → asy::Future<core::num*>* async /* futureValueType= core::num* */ {
    if(math::Random::•().{math::Random::nextBool}(){() →* core::bool*}) {
      return 1;
    }
    else {
      return 2.0;
    }
  };
  asy::Future<core::num*>* g = f(){() →* asy::Future<core::num*>*};
  asy::Future<core::int*>* h = f(){() →* asy::Future<core::num*>*} as{TypeError} asy::Future<core::int*>*;
}
static method main() → dynamic {}
