On Mon, Jun 29, 2020 at 9:39 PM Arthur A. Gleckler <xxxxxx@speechcode.com> wrote: > > On Mon, Jun 29, 2020 at 2:13 AM Duy Nguyen <xxxxxx@gmail.com> wrote: > >> >> Looks good. I did something like that when adapting the tests for >> Gauche (except that I did "(eqv? #f (string-.." which is not as good >> as "(not (string-..."). > > > But would you mind investigating why it doesn't work on Chibi despite my patch? It still works on Larceny, but I don't want to ask Will until it works on Chibi, which enforces the types. Another scheme that implements srfi-130 natively is Gauche. I tried the tests with your patch. With this extra patch on top, then it passes. The last two changes are correct. Cursors could be tied to a specific string, and when you write "abc" twice, you may create _two_ distinct strings. The first two changes are needed on Gauche because string-index->cursor must return a cursor, and cursors and index numbers are distinct on Gauche so you can't compare like that. I'm not sure about the intention of the test though. Perhaps the first change should be something like this instead (define empty-string "") (= (string-cursor-begin empty-string) (string-index->cursor empty-string (string-index->cursor "" 0))) ? -- Duy