Use Elevate::Task to arbitrate between UI & operation
Rename Promise to Future
Use Channel to convey data for on_update
Store handlers in Hash; release resources before invoking handler
Cleanup; support for passing args into operations
Skip callbacks when cancelling
Add support for custom error handlers
Timeout support
Bump version
Simplify Task a bit
Use task_args to access args Hash in all blocks
Specify work using worker method in inner DSL
Remove metaclass hackery to support yield in favor of update method
Docs now more accurately convey the level of awesome that is Elevate
Background work is specified by...background! PAULA = BRILLANT!
That copy, it moves you