Re: The Scala REPL output is confusing

Adriaan Moors <[email protected]> Mon, 31 Oct 2016 22:46:00 +0000
Newsgroups gmane.comp.lang.scala
Message-ID <CA+cgcwbFeJNDHofKRXCAWrKdBz8jhMF=-BREEbJ7KuyMQeRirQ@mail.gmail.com>
--94eb2c0bad166e7beb054030f919
Content-Type: text/plain; charset=UTF-8

I agree the output would be nicer if we printed out the method definition
in legal Scala. The current output is just printing the (strictly) internal
representation of a method type.

I would be happy to help to improve this. I believe the logic for the
output is here:
https://github.com/scala/scala/blob/2.12.x/src/repl/scala/tools/nsc/interpreter/MemberHandlers.scala#L156

cheers
adriaan

On Mon, Oct 31, 2016 at 2:55 PM Oliver Ruebenacker <[email protected]> wrote:

>
>      Hello,
>
>   The line is just:
>
> <name>: <type>
>
>   With "(in: String)Int" being the type of the method.
>
>   This resembles JNI method type notation, where the return type goes
> directly after the parens, too.
>
>      Best, Oliver
>
> On Mon, Oct 31, 2016 at 5:11 PM, Justin du coeur <[email protected]>
> wrote:
>
> (Note that this conversation started over on Gitter, and moved here.)
>
> That's fair, but note that the output *isn't legal Scala*.  The "method
> created" bit I agree is arguable, but it really is kind of weird and
> confusing that there's no colon before "Int" in the output -- the output
> syntax seems strangely arbitrary.  Was there a specific reason for that, or
> is it just an old "seemed good enough at the time"?
>
> I should note that I don't care passionately -- I don't use the REPL much
> myself.  But this seems like a pointless roadbump for new users, having the
> output be almost, but not quite, legal Scala.
>
> And really, is "unnecessary clutter" (at least in small amounts) actually
> a problem in the REPL?  I would say that clarity is likely a higher
> priority than output conciseness...
>
> On Mon, Oct 31, 2016 at 4:55 PM, Oliver Ruebenacker <[email protected]>
> wrote:
>
>
>      Hello,
>
>   That would add unnecessary clutter. Whoever entered the line knows they
> used def.
>
>      Best, Oliver
>
> On Mon, Oct 31, 2016 at 4:51 PM, Raphael Bosshard <
> [email protected]> wrote:
>
> Hi all,
>
> have you ever noticed how confusing the Scala REPL output it?
>
> scala> def foo(in: String): Int = ???
> foo: (in: String)Int
>
> I have learned what this "foo: (in: String)Int) is supposed to mean. But
> from a beginner's perspective I find it puzzling. Instead it should display
> something like this:
>
> method created: foo(in: String): Int
>
> Would someone support/guide me in fixing this?
>
> Cheers,
> Raphael
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "scala-language" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
> --
> Oliver Ruebenacker
> Senior Software Engineer, Diabetes Portal
> <http://www.type2diabetesgenetics.org/>, Broad Institute
> <http://www.broadinstitute.org/>
>
> --
> You received this message because you are subscribed to the Google Groups
> "scala-language" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "scala-language" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
> --
> Oliver Ruebenacker
> Senior Software Engineer, Diabetes Portal
> <http://www.type2diabetesgenetics.org/>, Broad Institute
> <http://www.broadinstitute.org/>
>
> --
> You received this message because you are subscribed to the Google Groups
> "scala-language" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

--94eb2c0bad166e7beb054030f919
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I agree the output would be nicer if we printed out the me=
thod definition in legal Scala. The current output is just printing the (st=
rictly) internal representation of a method type.<div><br></div><div>I woul=
d be happy to help to improve this. I believe the logic for the output is h=
ere:=C2=A0<a href=3D"https://github.com/scala/scala/blob/2.12.x/src/repl/sc=
ala/tools/nsc/interpreter/MemberHandlers.scala#L156">https://github.com/sca=
la/scala/blob/2.12.x/src/repl/scala/tools/nsc/interpreter/MemberHandlers.sc=
ala#L156</a></div><div><br></div><div>cheers</div><div>adriaan</div></div><=
br><div class=3D"gmail_quote"><div dir=3D"ltr">On Mon, Oct 31, 2016 at 2:55=
 PM Oliver Ruebenacker &lt;<a href=3D"mailto:[email protected]">curoli@gmail=
.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr=
" class=3D"gmail_msg"><div class=3D"gmail_msg"><div class=3D"gmail_msg"><di=
v class=3D"gmail_msg"><div class=3D"gmail_msg"><div class=3D"gmail_msg"><di=
v class=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0=C2=A0=C2=A0=C2=
=A0 Hello,<br class=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0 The =
line is just:<br class=3D"gmail_msg"><br class=3D"gmail_msg"></div>&lt;name=
&gt;: &lt;type&gt;<br class=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=
=A0 With &quot;(in: String)Int&quot; being the type of the method. <br clas=
s=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0 This resembles JNI met=
hod type notation, where the return type goes directly after the parens, to=
o.<br class=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0=C2=A0=C2=A0=
=C2=A0 Best, Oliver<br class=3D"gmail_msg"></div><div class=3D"gmail_extra =
gmail_msg"><br class=3D"gmail_msg"><div class=3D"gmail_quote gmail_msg">On =
Mon, Oct 31, 2016 at 5:11 PM, Justin du coeur <span dir=3D"ltr" class=3D"gm=
ail_msg">&lt;<a href=3D"mailto:[email protected]" class=3D"gmail_msg" targ=
et=3D"_blank">[email protected]</a>&gt;</span> wrote:<br class=3D"gmail_ms=
g"><blockquote class=3D"gmail_quote gmail_msg" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail=
_msg">(Note that this conversation started over on Gitter, and moved here.)=
<div class=3D"gmail_msg"><br class=3D"gmail_msg"></div><div class=3D"gmail_=
msg">That&#39;s fair, but note that the output <i class=3D"gmail_msg">isn&#=
39;t legal Scala</i>.=C2=A0 The &quot;method created&quot; bit I agree is a=
rguable, but it really is kind of weird and confusing that there&#39;s no c=
olon before &quot;Int&quot; in the output -- the output syntax seems strang=
ely arbitrary.=C2=A0 Was there a specific reason for that, or is it just an=
 old &quot;seemed good enough at the time&quot;?</div><div class=3D"gmail_m=
sg"><br class=3D"gmail_msg"></div><div class=3D"gmail_msg">I should note th=
at I don&#39;t care passionately -- I don&#39;t use the REPL much myself.=
=C2=A0 But this seems like a pointless roadbump for new users, having the o=
utput be almost, but not quite, legal Scala.</div><div class=3D"gmail_msg">=
<br class=3D"gmail_msg"></div><div class=3D"gmail_msg">And really, is &quot=
;unnecessary clutter&quot; (at least in small amounts) actually a problem i=
n the REPL?=C2=A0 I would say that clarity is likely a higher priority than=
 output conciseness...</div></div><div class=3D"m_5691870736931185121HOEnZb=
 gmail_msg"><div class=3D"m_5691870736931185121h5 gmail_msg"><div class=3D"=
gmail_extra gmail_msg"><br class=3D"gmail_msg"><div class=3D"gmail_quote gm=
ail_msg">On Mon, Oct 31, 2016 at 4:55 PM, Oliver Ruebenacker <span dir=3D"l=
tr" class=3D"gmail_msg">&lt;<a href=3D"mailto:[email protected]" class=3D"gm=
ail_msg" target=3D"_blank">[email protected]</a>&gt;</span> wrote:<br class=
=3D"gmail_msg"><blockquote class=3D"gmail_quote gmail_msg" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr" cl=
ass=3D"gmail_msg"><div class=3D"gmail_msg"><div class=3D"gmail_msg"><div cl=
ass=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0=C2=A0=C2=A0=C2=A0 He=
llo,<br class=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0 That would=
 add unnecessary clutter. Whoever entered the line knows they used def. <br=
 class=3D"gmail_msg"><br class=3D"gmail_msg"></div>=C2=A0=C2=A0=C2=A0=C2=A0=
 Best, Oliver<br class=3D"gmail_msg"></div><div class=3D"gmail_extra gmail_=
msg"><div class=3D"gmail_msg"><div class=3D"m_5691870736931185121m_38379954=
61070946043h5 gmail_msg"><br class=3D"gmail_msg"><div class=3D"gmail_quote =
gmail_msg">On Mon, Oct 31, 2016 at 4:51 PM, Raphael Bosshard <span dir=3D"l=
tr" class=3D"gmail_msg">&lt;<a href=3D"mailto:[email protected]" c=
lass=3D"gmail_msg" target=3D"_blank">[email protected]</a>&gt;</sp=
an> wrote:<br class=3D"gmail_msg"><blockquote class=3D"gmail_quote gmail_ms=
g" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
<div dir=3D"ltr" class=3D"gmail_msg">Hi all,<br class=3D"gmail_msg"><br cla=
ss=3D"gmail_msg">have you ever noticed how confusing the Scala REPL output =
it?<br class=3D"gmail_msg"><br class=3D"gmail_msg"><div style=3D"background=
-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;bo=
rder-width:1px" class=3D"m_5691870736931185121m_3837995461070946043m_253220=
2319531310957m_7490866102373541101prettyprint gmail_msg"><code class=3D"m_5=
691870736931185121m_3837995461070946043m_2532202319531310957m_7490866102373=
541101prettyprint gmail_msg"><div class=3D"m_5691870736931185121m_383799546=
1070946043m_2532202319531310957m_7490866102373541101subprettyprint gmail_ms=
g"><span style=3D"color:#000" class=3D"m_5691870736931185121m_3837995461070=
946043m_2532202319531310957m_7490866102373541101styled-by-prettify gmail_ms=
g">scala</span><span style=3D"color:#660" class=3D"m_5691870736931185121m_3=
837995461070946043m_2532202319531310957m_7490866102373541101styled-by-prett=
ify gmail_msg">&gt;</span><span style=3D"color:#000" class=3D"m_56918707369=
31185121m_3837995461070946043m_2532202319531310957m_7490866102373541101styl=
ed-by-prettify gmail_msg"> </span><span style=3D"color:#008" class=3D"m_569=
1870736931185121m_3837995461070946043m_2532202319531310957m_749086610237354=
1101styled-by-prettify gmail_msg">def</span><span style=3D"color:#000" clas=
s=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957m_74908=
66102373541101styled-by-prettify gmail_msg"> foo</span><span style=3D"color=
:#660" class=3D"m_5691870736931185121m_3837995461070946043m_253220231953131=
0957m_7490866102373541101styled-by-prettify gmail_msg">(</span><span style=
=3D"color:#008" class=3D"m_5691870736931185121m_3837995461070946043m_253220=
2319531310957m_7490866102373541101styled-by-prettify gmail_msg">in</span><s=
pan style=3D"color:#660" class=3D"m_5691870736931185121m_383799546107094604=
3m_2532202319531310957m_7490866102373541101styled-by-prettify gmail_msg">:<=
/span><span style=3D"color:#000" class=3D"m_5691870736931185121m_3837995461=
070946043m_2532202319531310957m_7490866102373541101styled-by-prettify gmail=
_msg"> </span><span style=3D"color:#606" class=3D"m_5691870736931185121m_38=
37995461070946043m_2532202319531310957m_7490866102373541101styled-by-pretti=
fy gmail_msg">String</span><span style=3D"color:#660" class=3D"m_5691870736=
931185121m_3837995461070946043m_2532202319531310957m_7490866102373541101sty=
led-by-prettify gmail_msg">):</span><span style=3D"color:#000" class=3D"m_5=
691870736931185121m_3837995461070946043m_2532202319531310957m_7490866102373=
541101styled-by-prettify gmail_msg"> </span><span style=3D"color:#606" clas=
s=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957m_74908=
66102373541101styled-by-prettify gmail_msg">Int</span><span style=3D"color:=
#000" class=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310=
957m_7490866102373541101styled-by-prettify gmail_msg"> </span><span style=
=3D"color:#660" class=3D"m_5691870736931185121m_3837995461070946043m_253220=
2319531310957m_7490866102373541101styled-by-prettify gmail_msg">=3D</span><=
span style=3D"color:#000" class=3D"m_5691870736931185121m_38379954610709460=
43m_2532202319531310957m_7490866102373541101styled-by-prettify gmail_msg"> =
</span><span style=3D"color:#660" class=3D"m_5691870736931185121m_383799546=
1070946043m_2532202319531310957m_7490866102373541101styled-by-prettify gmai=
l_msg">???</span><span style=3D"color:#000" class=3D"m_5691870736931185121m=
_3837995461070946043m_2532202319531310957m_7490866102373541101styled-by-pre=
ttify gmail_msg"><br class=3D"gmail_msg">foo</span><span style=3D"color:#66=
0" class=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957=
m_7490866102373541101styled-by-prettify gmail_msg">:</span><span style=3D"c=
olor:#000" class=3D"m_5691870736931185121m_3837995461070946043m_25322023195=
31310957m_7490866102373541101styled-by-prettify gmail_msg"> </span><span st=
yle=3D"color:#660" class=3D"m_5691870736931185121m_3837995461070946043m_253=
2202319531310957m_7490866102373541101styled-by-prettify gmail_msg">(</span>=
<span style=3D"color:#008" class=3D"m_5691870736931185121m_3837995461070946=
043m_2532202319531310957m_7490866102373541101styled-by-prettify gmail_msg">=
in</span><span style=3D"color:#660" class=3D"m_5691870736931185121m_3837995=
461070946043m_2532202319531310957m_7490866102373541101styled-by-prettify gm=
ail_msg">:</span><span style=3D"color:#000" class=3D"m_5691870736931185121m=
_3837995461070946043m_2532202319531310957m_7490866102373541101styled-by-pre=
ttify gmail_msg"> </span><span style=3D"color:#606" class=3D"m_569187073693=
1185121m_3837995461070946043m_2532202319531310957m_7490866102373541101style=
d-by-prettify gmail_msg">String</span><span style=3D"color:#660" class=3D"m=
_5691870736931185121m_3837995461070946043m_2532202319531310957m_74908661023=
73541101styled-by-prettify gmail_msg">)</span><span style=3D"color:#606" cl=
ass=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957m_749=
0866102373541101styled-by-prettify gmail_msg">Int</span><span style=3D"colo=
r:#000" class=3D"m_5691870736931185121m_3837995461070946043m_25322023195313=
10957m_7490866102373541101styled-by-prettify gmail_msg"><br class=3D"gmail_=
msg"></span></div></code></div><br class=3D"gmail_msg">I have learned what =
this &quot;foo: (in: String)Int) is supposed to mean. But from a beginner&#=
39;s perspective I find it puzzling. Instead it should display something li=
ke this:<br class=3D"gmail_msg"><span style=3D"color:#000" class=3D"m_56918=
70736931185121m_3837995461070946043m_2532202319531310957m_74908661023735411=
01styled-by-prettify gmail_msg"></span><br class=3D"gmail_msg"><span style=
=3D"color:#000" class=3D"m_5691870736931185121m_3837995461070946043m_253220=
2319531310957m_7490866102373541101styled-by-prettify gmail_msg"></span><div=
 style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);b=
order-style:solid;border-width:1px" class=3D"m_5691870736931185121m_3837995=
461070946043m_2532202319531310957m_7490866102373541101prettyprint gmail_msg=
"><code class=3D"m_5691870736931185121m_3837995461070946043m_25322023195313=
10957m_7490866102373541101prettyprint gmail_msg"><div class=3D"m_5691870736=
931185121m_3837995461070946043m_2532202319531310957m_7490866102373541101sub=
prettyprint gmail_msg"><span style=3D"color:#000" class=3D"m_56918707369311=
85121m_3837995461070946043m_2532202319531310957m_7490866102373541101styled-=
by-prettify gmail_msg">method created</span><span style=3D"color:#660" clas=
s=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957m_74908=
66102373541101styled-by-prettify gmail_msg">:</span><span style=3D"color:#0=
00" class=3D"m_5691870736931185121m_3837995461070946043m_253220231953131095=
7m_7490866102373541101styled-by-prettify gmail_msg"> foo</span><span style=
=3D"color:#660" class=3D"m_5691870736931185121m_3837995461070946043m_253220=
2319531310957m_7490866102373541101styled-by-prettify gmail_msg">(</span><sp=
an style=3D"color:#008" class=3D"m_5691870736931185121m_3837995461070946043=
m_2532202319531310957m_7490866102373541101styled-by-prettify gmail_msg">in<=
/span><span style=3D"color:#660" class=3D"m_5691870736931185121m_3837995461=
070946043m_2532202319531310957m_7490866102373541101styled-by-prettify gmail=
_msg">:</span><span style=3D"color:#000" class=3D"m_5691870736931185121m_38=
37995461070946043m_2532202319531310957m_7490866102373541101styled-by-pretti=
fy gmail_msg"> </span><span style=3D"color:#606" class=3D"m_569187073693118=
5121m_3837995461070946043m_2532202319531310957m_7490866102373541101styled-b=
y-prettify gmail_msg">String</span><span style=3D"color:#660" class=3D"m_56=
91870736931185121m_3837995461070946043m_2532202319531310957m_74908661023735=
41101styled-by-prettify gmail_msg">):</span><span style=3D"color:#000" clas=
s=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957m_74908=
66102373541101styled-by-prettify gmail_msg"> </span><span style=3D"color:#6=
06" class=3D"m_5691870736931185121m_3837995461070946043m_253220231953131095=
7m_7490866102373541101styled-by-prettify gmail_msg">Int</span><span style=
=3D"color:#000" class=3D"m_5691870736931185121m_3837995461070946043m_253220=
2319531310957m_7490866102373541101styled-by-prettify gmail_msg"> <br class=
=3D"gmail_msg"></span></div></code></div><code class=3D"m_56918707369311851=
21m_3837995461070946043m_2532202319531310957m_7490866102373541101prettyprin=
t gmail_msg"></code><br class=3D"gmail_msg"><code class=3D"m_56918707369311=
85121m_3837995461070946043m_2532202319531310957m_7490866102373541101prettyp=
rint gmail_msg"><div class=3D"m_5691870736931185121m_3837995461070946043m_2=
532202319531310957m_7490866102373541101subprettyprint gmail_msg"><span styl=
e=3D"color:#000" class=3D"m_5691870736931185121m_3837995461070946043m_25322=
02319531310957m_7490866102373541101styled-by-prettify gmail_msg"></span></d=
iv></code>Would someone support/guide me in fixing this?<br class=3D"gmail_=
msg"><br class=3D"gmail_msg">Cheers,<br class=3D"gmail_msg">Raphael<span cl=
ass=3D"m_5691870736931185121m_3837995461070946043m_2532202319531310957HOEnZ=
b gmail_msg"><font color=3D"#888888" class=3D"gmail_msg"><br class=3D"gmail=
_msg"><br class=3D"gmail_msg"><br class=3D"gmail_msg"><br class=3D"gmail_ms=
g"></font></span></div><span class=3D"m_5691870736931185121m_38379954610709=
46043m_2532202319531310957HOEnZb gmail_msg"><font color=3D"#888888" class=
=3D"gmail_msg">

<p class=3D"gmail_msg"></p>

-- <br class=3D"gmail_msg">
You received this message because you are subscribed to the Google Groups &=
quot;scala-language&quot; group.<br class=3D"gmail_msg">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]" clas=
s=3D"gmail_msg" target=3D"_blank">[email protected]=
om</a>.<br class=3D"gmail_msg">
For more options, visit <a href=3D"https://groups.google.com/d/optout" clas=
s=3D"gmail_msg" target=3D"_blank">https://groups.google.com/d/optout</a>.<b=
r class=3D"gmail_msg">
</font></span></blockquote></div><br class=3D"gmail_msg"><br clear=3D"all" =
class=3D"gmail_msg"><br class=3D"gmail_msg"></div></div><span class=3D"m_56=
91870736931185121m_3837995461070946043HOEnZb gmail_msg"><font color=3D"#888=
888" class=3D"gmail_msg">-- <br class=3D"gmail_msg"><div class=3D"m_5691870=
736931185121m_3837995461070946043m_2532202319531310957gmail_signature gmail=
_msg" data-smartmail=3D"gmail_signature"><div dir=3D"ltr" class=3D"gmail_ms=
g"><div class=3D"gmail_msg"><div dir=3D"ltr" class=3D"gmail_msg"><div class=
=3D"gmail_msg"><div dir=3D"ltr" class=3D"gmail_msg"><div class=3D"gmail_msg=
"><div dir=3D"ltr" class=3D"gmail_msg"><div class=3D"gmail_msg">Oliver Rueb=
enacker<br class=3D"gmail_msg"></div><div class=3D"gmail_msg">Senior Softwa=
re Engineer, <a href=3D"http://www.type2diabetesgenetics.org/" class=3D"gma=
il_msg" target=3D"_blank">Diabetes Portal</a>, <a href=3D"http://www.broadi=
nstitute.org/" class=3D"gmail_msg" target=3D"_blank">Broad Institute</a><br=
 class=3D"gmail_msg"></div><br class=3D"gmail_msg"></div></div></div></div>=
</div></div></div></div>
</font></span></div><div class=3D"m_5691870736931185121m_383799546107094604=
3HOEnZb gmail_msg"><div class=3D"m_5691870736931185121m_3837995461070946043=
h5 gmail_msg">

<p class=3D"gmail_msg"></p>

-- <br class=3D"gmail_msg">
You received this message because you are subscribed to the Google Groups &=
quot;scala-language&quot; group.<br class=3D"gmail_msg">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]" clas=
s=3D"gmail_msg" target=3D"_blank">[email protected]=
om</a>.<br class=3D"gmail_msg">
For more options, visit <a href=3D"https://groups.google.com/d/optout" clas=
s=3D"gmail_msg" target=3D"_blank">https://groups.google.com/d/optout</a>.<b=
r class=3D"gmail_msg">
</div></div></blockquote></div><br class=3D"gmail_msg"></div>

<p class=3D"gmail_msg"></p>

-- <br class=3D"gmail_msg">
You received this message because you are subscribed to the Google Groups &=
quot;scala-language&quot; group.<br class=3D"gmail_msg">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]" clas=
s=3D"gmail_msg" target=3D"_blank">[email protected]=
om</a>.<br class=3D"gmail_msg">
For more options, visit <a href=3D"https://groups.google.com/d/optout" clas=
s=3D"gmail_msg" target=3D"_blank">https://groups.google.com/d/optout</a>.<b=
r class=3D"gmail_msg">
</div></div></blockquote></div><br class=3D"gmail_msg"><br clear=3D"all" cl=
ass=3D"gmail_msg"><br class=3D"gmail_msg">-- <br class=3D"gmail_msg"><div c=
lass=3D"m_5691870736931185121gmail_signature gmail_msg" data-smartmail=3D"g=
mail_signature"><div dir=3D"ltr" class=3D"gmail_msg"><div class=3D"gmail_ms=
g"><div dir=3D"ltr" class=3D"gmail_msg"><div class=3D"gmail_msg"><div dir=
=3D"ltr" class=3D"gmail_msg"><div class=3D"gmail_msg"><div dir=3D"ltr" clas=
s=3D"gmail_msg"><div class=3D"gmail_msg">Oliver Ruebenacker<br class=3D"gma=
il_msg"></div><div class=3D"gmail_msg">Senior Software Engineer, <a href=3D=
"http://www.type2diabetesgenetics.org/" class=3D"gmail_msg" target=3D"_blan=
k">Diabetes Portal</a>, <a href=3D"http://www.broadinstitute.org/" class=3D=
"gmail_msg" target=3D"_blank">Broad Institute</a><br class=3D"gmail_msg"></=
div><br class=3D"gmail_msg"></div></div></div></div></div></div></div></div=
>
</div>

<p class=3D"gmail_msg"></p>

-- <br class=3D"gmail_msg">
You received this message because you are subscribed to the Google Groups &=
quot;scala-language&quot; group.<br class=3D"gmail_msg">
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]" clas=
s=3D"gmail_msg" target=3D"_blank">[email protected]=
om</a>.<br class=3D"gmail_msg">
For more options, visit <a href=3D"https://groups.google.com/d/optout" clas=
s=3D"gmail_msg" target=3D"_blank">https://groups.google.com/d/optout</a>.<b=
r class=3D"gmail_msg">
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;scala-language&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]">scal=
[email protected]</a>.<br />
For more options, visit <a href=3D"https://groups.google.com/d/optout">http=
s://groups.google.com/d/optout</a>.<br />

--94eb2c0bad166e7beb054030f919--