Casting should not be used as a mechanism for "safe" conversions between types. `cast` is a keyword in D specifically to aid code review to find places where something unsafe might be going on. I do not believe that overriding `opCast` for safe semantic conversions between types is in the spirit of D. It is also too much syntactic baggage for an operation as mundane as converting between these two similar types, and unlike e.g. `.fracSec`, you do not need to remember any property/method names to perform the conversion - just the type you want to convert to.

Using a constructor is already an established convention for conversion between types. We are still missing the `int(x)` syntax in the language for implicit casts to basic types, and I believe Andrei mentioned that he would be in favor of adding it.