The SRFI-19 current-time function can return several flavours of the current time:
scheme@(guile-user)> (use-modules (srfi srfi-19)) scheme@(guile-user)> (current-time time-utc) $1 = #<time type: time-utc nanosecond: 727666000 second: 1491045256> scheme@(guile-user)> (current-time time-tai) $2 = #<time type: time-tai nanosecond: 414752000 second: 1491045294> scheme@(guile-user)> (current-time time-monotonic) $3 = #<time type: time-tai nanosecond: 814494000 second: 1491045297> The last of these three is erroneous: a time structure of type time-monotonic was requested and must be returned, but instead the type is time-tai. Although the implementation gives these two time types numerically identical behaviour, it does treat them as nominally distinct in other operations: scheme@(guile-user)> (eqv? time-tai time-monotonic) $4 = #f scheme@(guile-user)> (julian-day->time-tai 2450000) $5 = #<time type: time-tai nanosecond: 0 second: 813240029> scheme@(guile-user)> (julian-day->time-monotonic 2450000) $6 = #<time type: time-monotonic nanosecond: 0 second: 813240029> -zefram