  
  - note: `retry(_:)` method can be chained with other task methods
 */
-
-/// Typealias for `NSOperation`
-public typealias TaskBase = NSOperation
-
 public class Task<T>: TaskBase {
     
     /**


import class Foundation.NSOperation

/**
 `Task<T>` is an abstract class that provides interface encapsuling any
 asynchronous or synchronous operation. Abstract nature of the `Task<T>` enforces

 1. **State machine** - `Task<T>` works with internal task state machine. State
 of the task at any point can be:
 
	* initialized - Task instance is created
	* pending - Task is added to the `TaskQueue` and started process of
	evaluating readiness
	* ready - Task is ready to execute.
	* executing - Task is executing
	* finished - Task finished with execution
 
 2. **Task execution point** - Task execution starts in `run()` method when state
 reaches `ready` state. You should always override this method in your subclass.
 
 3. **Finishing execution** - Task execution finishes when `finish(_:)` method is
 called. You always finish execution with `Result<T>` object. `Result<T>` is an
