Implements an option type (Strilanc.Value.May<T>) that encourages usage based on pattern matching rather than ForceGetValue. Also includes utility methods for producing, consuming and transforming May<T>.
Note on null: May<T> treats null like any other value. May.NoValue is distinct from null, and both are distinct from ((object)null).Maybe().
Added utility methods for working with sequences: WhereHasValue, MayAll, MayAggregate, MayMin, MayMax, MayMinBy, MayMaxBy, MayFirst, MayLast, and MaySingle.
This package has no dependencies.