Vigil is a very safe programming language in which you have to swear what kind of result you’ll be returning. If a function fails to uphold what it has sworn to do, it will be deleted from you’re source-code.
You can also define that parameters should have certain desirable properties. If a caller of a function uses a invalid parameter he will be removed from the source-code.
This results into a “bugfree” program. Ex. :D
def fib(n):
if n < 2:
result = n
else:
result = fib(n - 1) + fib(n - 2)
# fib() never returns negative number.
swear result >= 0
return result