public static Func <T1, Maybe <T3> > Compose <T1, T2, T3>(Func <T1, T2> func1, Func <T2, T3> func2) => value => Maybe <T2> .Just(func1(value)).Bind(func2);
 public static Maybe <T2> Bind <T1, T2>(this Maybe <T1> maybe, Func <T1, T2> func) =>
 maybe.Bind(value => Maybe <T2> .Just(func(value)));