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

 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


import class Foundation.NSOperation

/// Typealias for `NSOperation`
public typealias TaskBase = NSOperation

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