public static T GetOrElse <T> (this IOption <T> opt, Func <T> defaultValue) { return(opt.IsEmpty() ? defaultValue() : opt.Get()); }