[racket-dev] shared no longer works on cons?!?

From: Ryan Culpepper (ryan at cs.utah.edu)
Date: Thu Oct 20 23:27:15 EDT 2011

On 10/20/2011 09:14 PM, Shriram Krishnamurthi wrote:
> Ryan, I noticed this seems to be a problem in full Racket as well: try
>
> #lang racket
>
> (define web-colors
>   (shared ([W (cons "white" G)]
>            [G (cons "grey" W)])
>     W))
>
> (rest web-colors)
>
> Robby privately wrote to say it should be regarded as a bug.

There seem to be conflicting intentions somewhere. Perhaps the 
racket/list checks were really intended to use proper-or-cyclic-list?... 
except that I think they were also put in place with the idea that list? 
was amortized constant time (cached in the pair header bits). I know Eli 
had to make the lazy version of first different for roughly the same 
reason, so maybe he can say whether this issue was considered for racket 
or the teaching languages.

Ryan


Posted on the dev mailing list.