         return .init { function in dispatchQueue.async(execute: function) }
     }
     
-    private let executor: (@escaping () -> Void) -> Void
+    private let context: Context
     
     /// Create with executor function.
     ///
     /// - Parameters:
-    ///   - executor: A function to that executes other function.
-    public init(_ executor: @escaping (@escaping () -> Void) -> Void) {
-        self.executor = executor
+    ///   - context: A function to that executes other function.
+    public init(_ context: @escaping Context) {
+        self.context = context
     }
     
     /// Execute an arbitrary function.

    }
}

/// Executes arbitrary function by several behavior.
public struct Executor {
    /// Executes function immediately and synchronously.
    public static var immediate: Executor {
        return .init { function in function() }

    /// - Parameters:
    ///   - function: A function to be execute.
    public func execute(_ function: @escaping () -> Void) {
        context(function)
    }
}

