LD2++ Thanks muchly for the pointer. And ++davorg also.
I *think* (after a first reading) that the bit I have been missing, despite having read (scanned) it many times is the overload::constants and the overload::remove_constant() stuff.
The article and associated module where exactly what I was looking for.
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail