I've written unit tests and added the lexical-binding header to
underline.el.  Please let me know if you have any comments.

Thanks,
Stefan Kangas