public Chain(IChainFactory factory) { _factory = factory; }
public LazyChain(IChainFactory factory, T current) : this(factory, () => current) { _current = current; }
public ChainAwaiter(IChainFactory factory, Task <T> task) { Result = task; Factory = factory; }
public LazyChain(IChainFactory factory, Func <T> func) { _func = func; Factory = factory; }