pub fn new_partial<RuntimeApi, Executor, BIQ>(
    config: &Configuration,
    eth_config: &EthConfiguration,
    build_import_queue: BIQ
) -> Result<PartialComponents<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>, TFullBackend<Block>, LongestChain<TFullBackend<Block>, Block>, DefaultImportQueue<Block>, FullPool<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, (Option<Telemetry>, BoxBlockImport<Block>, LinkHalf<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>, LongestChain<TFullBackend<Block>, Block>>, Backend<Block>, Arc<OverrideHandle<Block>>)>, Error>
where RuntimeApi: ConstructRuntimeApi<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>> + Send + Sync + 'static, RuntimeApi::RuntimeApi: BaseRuntimeApiCollection + EthCompatRuntimeApiCollection, Executor: NativeExecutionDispatch + 'static, BIQ: FnOnce(Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, &Configuration, &EthConfiguration, &TaskManager, Option<TelemetryHandle>, GrandpaBlockImport<TFullBackend<Block>, Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>, LongestChain<TFullBackend<Block>, Block>>) -> Result<(DefaultImportQueue<Block>, BoxBlockImport<Block>), Error>,