Promises and latches for Emacs Lisp