Why wouldn't this have to be
```
ask(() => new UnitParser(new CompilationUnit(source)).parse())
```
?