Beware of Acme:: modules. They are jokes. This one executes the call back, finds how long it took, then displays a progress bar that's 10x that long. Since the code has already been executed in the first 10%, it does nothing 90% of the time the progress bar is displayed. That's why progress { sleep 5 }; takes 50s to complete.