fun <T : TimePoint<T>> fromClosedRange(rangeStart: T, rangeEnd: T, step: LongSeconds): TimePointSecondProgression<T>