If you've worked with the .NET built-in types (DateTime, Boolean, ...) you probably faced a little
problem one day: these data types don't support the Null value. NullableTypes are the easy, intuitive,
elegant and definitive solution!

ABSTRACT _

NullableTypes for .NET are a very reliable and efficient version of built-in value-types that can be Null.
NullableTypes pass more than 800 differents test cases and have close-to-optimal efficiency as built-in
value-types. They may be used every time you need to store a Null value in a .NET built-in value-type.

where RequestedDeliveryDate can be either
NullableDateTime.Null or a valid DateTime value.
The property RequestedDeliveryDate.IsNull tests if the date is Null, and when
it is not Null the property RequestedDeliveryDate.Value returns a valid DateTime value.

Performance improvements:
Implement the type-safe version of Equals() and CompareTo() methods to reduce boxing/unboxing in the user code.
Compare the performance of the actual implementation of Equals(object) with an alternative implementation.
Apply here >>>

Complete MONO porting:
Submit bugs to the Mono team for the tests that actually fail due to Mono bugs and make tests pass.
Apply here >>>