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