Thank you, thank you, thank you. 

[This validates that my objection to our parametricity is real.]



On Nov 1, 2012, at 4:56 PM, John Clements wrote:

> I can't tell whether this is a bug.  In the program below, remove-duplicates 
> doesn't remove duplicates. This looks like an attempt to preserve 
> parametricity a la theorems for free, but I don't think that TR actually 
> tries to guarantee parametricity in this sense.  I'm guessing that the values 
> in the list are being wrapped in contracts that prevent 'eq?'-checking; I 
> thought that chaperones were supposed to... no, I shouldn't even finish that 
> sentence.
> 
> Anyhow, I'm just writing to make sure that this isn't a bug. It's certainly 
> not the behavior that I would naively expect. I can certainly work around the 
> bug by substituting a more specific type for remove-duplicates, as in the 
> commented-out version.
> 
> John
> 
> #lang typed/racket
> 
> (require/typed racket
>               [remove-duplicates (All (T) (Listof T) -> (Listof T))]
>               #;[remove-duplicates ((Listof Symbol) -> (Listof Symbol))])
> 
> (remove-duplicates '(a b c a d)) ;; => produces '(a b c a d)--that is, a list 
> with duplicates
> 
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

Attachment: smime.p7s
Description: S/MIME cryptographic signature

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to