We don't need to specify implementation of timespec at all in srfi-170. As long as it
responds to the given API, it can be a pair or a record or a vector or even a bignum.
Is it too underspecified? To me, using a pair of integers looks arbitrary and we don't
gain much by specifying the concrete representation.
Having comparator is a good idea. One drawback of using non-disjoint type for
timespec is that such comparator can't be passed to comparator-regeister-default!.
But it can be a trade-off with giving choice to the implementations.
Aside from srfi-170 and generally speaking, record interoperability is certainly
an issue of current srfis where we don't want to bind implementations with lots
of dependencies. Using structural polymorphism might be easier but that
isn't Scheme's way, I guess.