I like Common Lisp's ability to annotate functions with types *for performance*. It removes much of the dynamic typing overhead.
miniblog.
Related Posts
Type signatures are optional in Haskell, but in OCaml you can even specify partial signatures (e.g. just one parameter).
Maybe return types are more valuable to annotate? I can often guess params based on the name, but I have to read the function body for the result.
Emacs tip of the day: annotate your functions! The byte compiler can replace entire function calls at compile time if your function is pure.
Rather than showing compiler errors in a different window to your editor, BSD has long been able to annotate code! https://lambda-the-ultimate.org/node/5280#comment-90779
