Jérôme M. Berger wrote:
I thought D was supposed to be a pragmatic language? All this means is that we need a compromise between what would be ideal (being able to represent arbitrary conditions and have them statically enforced at compile time) and what can be realistically achieved. Your argument seems to be: "since there are cases which we won't be able to handle, let's not do anything at all, not even the cases which we could handle".
The idea is to find a way to solve this in the general case, not the specific case of non-null pointers. Then we've got dynamite in our hands, rather than warmed over toast.