This is really great, thank you! (I think there might be a mistake in the line #list-b; the above only worked when I removed that).
One further step: is there a way in which to have one key term take multiple long values, where each of those long values is mapped to its own description? Such that the printed glossary would output something like:
Latin to English
Foo – Lorem: Comment A. Ipsum: Comment B.
English to Latin
Lorem – Foo: Comment A.
Ipsum – Foo: Comment B.