Controller is user code, it can be arbitrary. E.g....
# coroutines
o
Controller is user code, it can be arbitrary. E.g. sequence generation controller stores continuation and yielded value in fields, naturally, and calls continuation when next value is retrieved.