public static Try <A> Where <A>(this Try <A> either, Predicate <A> predicate, String message) => either.Where(predicate, () => message);
public static Try <A> WhereNot <A>(this Try <A> incoming, Predicate <A> notPredicate, Func <Exception> errorCallback) => incoming.Where(x => !notPredicate(x), errorCallback);
public static Try <A> Where <A>(this Try <A> either, Predicate <A> predicate, Func <String> errorCallback) => either.Where(predicate, () => new Exception(errorCallback()));