C# does this with the null hole. I wish more languages would take a versioning approach to defaults at the file-level.