This allows us to differentiate between superclock_t and samplepos_t (and related types) which are all typedef'ed to the same underlying primitive C++ type. Without this, it would be impossible for the compiler or someone reading the code to know whether a scalar passed to a constructor for a timeline type is in units of samples or superclocks