Lazily evaluates the function passed into the constructor.
@override Future<T> force() async { if (_val == null) { _val = await _func(); return _val!; } return _val!; }