Adds decent support for nullable types