The best approach seems to be to check for a negative count before calling the R6RS routine and add (- end start) to it.