Got some example.

```
void main() {
  A a = A();
  transform(a);
  print(a.str + ' sync');
}

Future<void> transform(A a) async {
  await Future.delayed(Duration(seconds: 3), () => a.str = 'B');
  print(a.str + ' async');
}

class A {
  String str = 'A';
}

```

And output:

```
A sync
B async

```

And next example

```
void main() {
  A a = A();
  transform(a);
  print(a.str + ' sync');
}

Future<void> transform(A a) async {
  Function f = () {
    a.str = 'B';
  };
  await Future.delayed(Duration(seconds: 3), f());
  print(a.str + ' async');
}

class A {
  String str = 'A';
}

```

With output:

```
B sync
B async

```

Am i right thinking that f() is executed but just not returned in the second case, so i've got the a.str value modified imidiatly and returned later? Or what the right answer?