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: ul.1
I later converted this to DocBook XML: ul.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