The next step for this would be to statically verify the annotations are being obeyed.
The fact that the general problem is impossible does not mean that the entire area of study is useless.
and restricted languages such as Spark http://en.wikipedia.org/wiki/SPARK_(programming_language)
[1]: You can play with it here: http://www.pexforfun.com/