private static ILease <Y> Do <X, Y>(this ILendable <Y> output, Action <X, Y> render, ILease <X> lease) { return(lease.Extract(value => { var target = output.GetLease(); render(value, target.Value); return target; })); }
public ILease <TValue> GetLease() { return(m_Value.GetLease()); }
public static ILendable <A> MakeLazy <A>(this ILendable <A> lendable) { return(new Deferred <A>(() => new Lazy <A>(() => lendable.GetLease()))); }
public static B Extract <A, B>(this ILendable <A> lendable, Func <A, B> callback) { return(lendable.GetLease().Extract(callback)); }
public static void Extract <A>(this ILendable <A> lendable, Action <A> callback) { lendable.GetLease().Extract(callback); }
public Mapped(ILendable <TInput> lendable, Func <ILease <TInput>, ILease <TOutput> > func) : base(() => func(lendable.GetLease())) { }