Was searching the archives and found the post about using /*@abstract@*/ in a typedef.
That's almost what I'm after, but it's much too obstructive for me. What I'd like is
something along these lines:
typedef /*@abstract@*/ int seconds;
typedef /*@abstract@*/ int minutes;
seconds tod_sec = (seconds)5; // legal
minutes tod_min = (minutes)7; // legal
tod_min++; // legal
tod_sec = tod_min; // illegal
tod_min = 10; // illegal
if (tod_min > tod_sec) // illegal
'tod_min = 10' may be clear in context, but it could easily be obfuscated by macros or
less obvious variable names... so I'd be happy to see it trapped.