Use @auto_closure to avoid ugly closures

It seems that `@auto_closure` could be used to avoid closures at the call site. It will simplify further removal of the hack.