Completer<T>
CompleterImpl() : _futureImpl = new FutureImpl() {}
void complete(T value) { _futureImpl._setValue(value); }
void completeException(Object exception, [Object stackTrace]) { _futureImpl._setException(exception, stackTrace); }
Future<T> get future() { return _futureImpl; }