Casting between units?

I have a need for a unit that represents a time in hours/minutes/seconds form, so I created one like this:

A specific time is a kind of value. 23:59:59 specifies a specific time with parts hours, minutes, and seconds.

This seems to work. The problem comes up when I need to cast times to specific times, and vice-versa. Is there a way to override the casting function, so that I can provide code to convert between them? This won’t work…

To decide what specific time is (T - time):

…because Inform doesn’t like phrases without fixed words, so I imagine I’ll have to use some I6.

I don’t think you can do this at all. The compiler won’t accept type mismatches (except in specific known cases, like int to float).

Use a phrase with fixed words.