Skip to main content


Just spent a good half hour pulling my hair out trying to figure out why one of the #elisp functions I had just written was always returning nil when I tested it. Turns out, my test was mistakenly passing its inputs to the wrong (but similarly named) function (pivot-table-get-columns instead of pivot-table-get-body).

#Haskell's type system would've caught this. 🙃

#emacs #lisp

in reply to Jonathan Lamothe

It sounds like the sort of thing a more type-ful Lisp implementation would have detected too. I bet SBCL would have have given you a compiler note warning of an analogous problem, for example.
This entry was edited (15 hours ago)
in reply to Jonathan Lamothe

C's type system would also have caught it, and it isn't worth a hill of beans.

By caught it what do we mean? This is not a case of some undetected error escaping your attention due to dynamic typing. You know you got a nil which is unexpected and wrong. It's in a test case which catches it.

The only thing a type system would change is that you would instead waste a half hour not understanding how your obviously correct function call can possibly have the wrong return type.

in reply to Kazinator

@Kazinator I feel that that would have been much more useful information. nil is about the least useful failure state there is.

This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.