Check out Common Lisp, it's gradually typed, so if you want you can just write your code like this:
(defun fib (n) (declare (type (Integer 0 100) n)) (the (Integer 0 *) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 2).)