Wow! Thanks Stéphane... that was a little piece of magic I was
hoping for. It's a bit verbose, but at least it doesn't affect
performance and it allows all the control over types I need.

I now see I didn't really grok phantom types whenever they were
mentioned. A bit of "in one ear and out the other". Now I have
better grasp on yet another feature of the language.


I know I read that one before, Dario... that title about NASA
is familiar! Too bad I didn't remember it was a solution to the
problem I was now having. Thank-you for that link -- an
excellent description of the problem and a nice solution.


Ah, great stuff... that looks like something to consider too,
Sylvain! There's plenty of material on phantom types but I never
made the connection that they were what I was looking for.


Thank-you everyone for the help and clear explanations! I'm
going to go play with this now. :)

Anthony Tavener