public static Optional <R> Map <T, R>(this Optional <T> source, Func <T, R> map) { return(source.Match(x => Some.Of(map(x)), None.Of <R>)); }
public static Optional <T> Of <T>(T value) { return((object)value == null?None.Of <T>() : Some.Of(value)); }