At JuliaCon, I described the idea of using Option types instead of NAtype to make it easier to write type-stable code that interacts with NA’s. To help facilitate a debate about the utility of this approach, I just wrote up a minimal package that implements Option types: https://github.com/johnmyleswhite/OptionTypes.jl
Essentially, an Option type is a scalar version of a DataArray: it contains a value and a Boolean mask indicating whether that value is NA or not. Because Option types are parametric, they allow us to express the variants of NA that R has, such as a Float64 specific NA and an Int64 specific NA. — John
