We refactor a standard node callback style workflow into a composed task-based workflow.
If it's the part I'm thinking of - where make app a function or not:
app = () => new Task((rej, res)... app().fork
app = new Task((rej, res)... app.fork
The idea is the former is a function that creates a new Task object instance each time you call it and the other is just assigned to the Task instance itself.
Since Task is lazy, it doesn't actually run until we fork it. That means we don't need to put it in a function wrapper to prevent it from running.