<div dir="ltr">Ian, sets are now a generic datatype, like dictionaries.  Association lists are dictionaries, and lists are now sets.  They&#39;re also streams and sequences.  They&#39;re not just &quot;set-like&quot;.<br></div>

<div class="gmail_extra"><br clear="all"><div>Carl Eastlund</div>
<br><br><div class="gmail_quote">On Wed, Aug 21, 2013 at 6:56 PM, J. Ian Johnson <span dir="ltr">&lt;<a href="mailto:ianj@ccs.neu.edu" target="_blank">ianj@ccs.neu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I just wasted about 2 hours tracking down a bug that ended up being due to (set? &#39;()) now evaluating to #t. I have no problems with set-union, intersection, etc. being defined for lists, but to treat lists as sets always is perverse to me. The contracts for set operations should use set-like? for (or/c set? list?) and keep the two constructions separate.<br>


<br>
This conflation is almost as bad as treating empty list as false.<br>
<br>
-Ian<br>
_________________________<br>
  Racket Developers list:<br>
  <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
<br>
</blockquote></div><br></div>