Add wrapping/unwrapping support for Optional types