<div dir="ltr"><div><div class="gmail_extra"><div class="gmail_quote">On Fri, Aug 2, 2013 at 1:47 PM, Stephen Chang <span dir="ltr">&lt;<a href="mailto:stchang@ccs.neu.edu" target="_blank">stchang@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"><div class="im">&gt; With that in mind, I think it would make sense to move `set-first&#39; and<br>
&gt; `set-empty?&#39; to the primitive set (making it clear that they are<br>
&gt; optional, and can be derived from `set-&gt;stream&#39; if need be). With those<br>
&gt; two in the primitive set, anything that implements all the primitives<br>
&gt; should get all the derived for free, right?<br>
<br>
</div>Oh yeah, I like that better than moving set-&gt;stream to primitives<br>
since they are more &quot;standard&quot; set operations.<br></blockquote><div><br></div><div>So the proposal for &quot;primitive&quot; methods is to pick one canonical set of methods from which all the others can be derived?  I&#39;m fairly sure there&#39;s more than one such set, and I&#39;m not sure there&#39;s one choice that&#39;s clearly better than the others. I can understand the benefits of documenting a &quot;suggested&quot; set, but given that it is an arbitrary and pragmatic distinction, I&#39;m not sure I&#39;d want to set them off in a section any more.  I&#39;d just make a list in the gen:set description or something.<br>

<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Carl, I dont see how guaranteeing some fallback implementations<br>
affects allowing more efficient versions. I think most programmers<br>
understand that the default implementation is probably not very<br>
efficient.<br></blockquote><br></div><div>Yes, but a default implementation doesn&#39;t have to be inefficient.  Right now the fallback implementation of set=? and proper-subset? will be efficient if the implementation of subset? is efficient.  Your proposal to make fallbacks depend only on primitive methods would prevent that.  I don&#39;t understand why we&#39;d want to prevent &quot;intelligent&quot; fallbacks like I&#39;ve made the effort to write, just to draw a line in the sand.<br>

<br></div><div>--Carl<br></div></div></div></div>