Hi Chad,<br><br>Yes, it is redundant. See : <a href="http://docs.racket-lang.org/guide/modules.html">http://docs.racket-lang.org/guide/modules.html</a><br><br>Laurent<br><br><div class="gmail_quote">On Wed, May 9, 2012 at 11:28 PM, Danny Yoo <span dir="ltr">&lt;<a href="mailto:dyoo@hashcollision.org" target="_blank">dyoo@hashcollision.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">[forwarding to racket-users]<br>
<br>
<br>
---------- Forwarded message ----------<br>
From: Chad Albers &lt;<a href="mailto:calbers@neomantic.com">calbers@neomantic.com</a>&gt;<br>
Date: Wed, May 9, 2012 at 2:22 PM<br>
Subject: Re: [racket] Rationale behind missing string-trim<br>
To: Danny Yoo &lt;<a href="mailto:dyoo@hashcollision.org">dyoo@hashcollision.org</a>&gt;<br>
<br>
<br>
Happy to help you guys identify a bug.  On a side note, that&#39;s not<br>
really relevant to this thread,  I was wondering about your statement<br>
about #lang racket.<br>
<br>
I had assume that you just add #lang racket, if you&#39;re writing a<br>
racket script, sort of like the hash bang syntax of a shell script.<br>
Is that a correct assumption?  Related, the code I&#39;m writing is<br>
actually in a module I&#39;m creating, and I&#39;ve used this to source the<br>
racket language:<br>
<br>
(module rig racket<br>
<br>
  (require racket/base<br>
       (for-syntax racket/base<br>
               racket/syntax))<br>
<br>
Should I have used #lang racket?  is racket/base redundant, since I<br>
have it in the module definition?  Thanks for your help, if you can<br>
answer these questions for me.<br>
<br>
Chad<br>
<br>
--<br>
Chad Albers<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
On Wed, May 9, 2012 at 1:45 PM, Danny Yoo &lt;<a href="mailto:dyoo@hashcollision.org">dyoo@hashcollision.org</a>&gt; wrote:<br>
&gt;<br>
&gt; On Wed, May 9, 2012 at 1:23 PM, Chad Albers &lt;<a href="mailto:calbers@neomantic.com">calbers@neomantic.com</a>&gt; wrote:<br>
&gt; &gt; If my require reads as follows<br>
&gt; &gt;<br>
&gt; &gt; (require racket/base<br>
&gt; &gt;            srfi/13<br>
&gt; &gt;        (for-syntax racket/base<br>
&gt; &gt;                racket/syntax))<br>
&gt; &gt;<br>
&gt; &gt; I get the following error message:<br>
&gt; &gt;<br>
&gt; &gt; module: identifier already imported from: racket at: string-upcase in:<br>
&gt; &gt; srfi/13<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; Huh!  That looks like the error reporting is misattributing the source<br>
&gt; of the conflict.  I&#39;ll send a bug report.<br>
&gt;<br>
&gt; The error is highlighting the &quot;racket&quot; in the #lang line and srfi/13,<br>
&gt; but the true source of the conflict&#39;s really between the exports of<br>
&gt; racket/base and srfi/13.  For demonstration, try:<br>
&gt;<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; #lang racket<br>
&gt; (require (only-in racket/base string-upcase)<br>
&gt;         srfi/13)<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt;<br>
&gt; vs:<br>
&gt;<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; #lang racket<br>
&gt; (require (only-in racket/base)<br>
&gt;         srfi/13)<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt;<br>
&gt; In the first,  we tell Racket o use both the string-upcase function in<br>
&gt; racket/base, as well as all the exports of srfi/13.  Since both<br>
&gt; requires provide a string-upcase function, there&#39;s a conflict, which<br>
&gt; the DrRacket environment reports.<br>
&gt;<br>
&gt; In the second, we mask out all the exports from racket/base.  So the<br>
&gt; exports of srfi/13 can otherwise shadow everything else without<br>
&gt; complaint.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Side note: the big language of &quot;#lang racket&quot; provides everything in<br>
&gt; racket/base, so the (require racket/base) is actually redundant.  You<br>
&gt; can write:<br>
&gt;<br>
&gt;     #lang racket<br>
&gt;     (require srfi/13)<br>
<br>
</div></div><div class="HOEnZb"><div class="h5">____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div></div></blockquote></div><br>