An answer a Unix & Linux Stack Exchange led me to look at the manual page for the
ul command on NetBSD and FreeBSD.
It really did not explain the full operation of the program, which is actually a lot more than what the FreeBSD/NetBSD manual page states.
So I made it better.
I took the existing roff source and improved it:
I later converted this to DocBook XML:
Note that pretty much everything documented was in the program as originally written, all of those years ago, and has been there all along.
The result of converting the DocBook XML to HTML with
xmlto looks like