public static Identity <B> Bind <A, B>(this Identity <A> ma, Func <A, Identity <B> > f) { return(IdentityMonad.Bind(ma, f)); }
public static Identity <B> Bind <A, B>(Identity <A> ma, Func <A, Identity <B> > f) { Console.WriteLine("Binding Identity<{0}> with value '{1}' to function from '{2}' to Identity<{3}>...", typeof(A), ma.Value, typeof(A), typeof(B)); return(f(ma.Value)); }