Re: The Scala REPL output is confusing

som-snytt <[email protected]> Fri, 4 Nov 2016 23:31:57 -0700 (PDT)
Newsgroups gmane.comp.lang.scala
Message-ID <[email protected]>
------=_Part_1662_12763592.1478327517241
Content-Type: multipart/alternative; 
	boundary="----=_Part_1663_1066574718.1478327517242"

------=_Part_1663_1066574718.1478327517242
Content-Type: text/plain; charset=UTF-8


I already responded to the cross-posting elsewhere -- that different users 
have different needs --

but Oliver's comment reminded me that the clever `//print` autocomplete 
mechanism is easy to overlook.

I'd like an output mode for REPL where it's basically doing what //print 
does. That is, echo what I typed with extra type info.

The only difference is that //print would not side-effect, but nobody does 
that anyway.

For example, when I enter f(17), show me the expanded expression.

scala> def f(i: Int)(implicit j: Int) = i + j
f: (i: Int)(implicit j: Int)Int

scala> implicit val x: Int = 42
x: Int = 42

scala> f(17) //print
   $line4.$read.$iw.$iw.f(17)($line5.$read.$iw.$iw.x) // : Int

scala> f(17)
res0: Int = 59


On Thursday, November 3, 2016 at 4:55:07 AM UTC-7, Raphael Bosshard wrote:
>
> Hi all,
>
> This is now https://issues.scala-lang.org/browse/SI-10023. We can discuss 
> the specifics (i.e. how the new output should look like) there.
>
> Thanks for all the help and directions!
>
> Raphael
>
> Am Dienstag, 1. November 2016 17:58:05 UTC+1 schrieb Adriaan Moors:
>>
>> Yes, a PR will be needed for the CI to verify your changes. We have some 
>> docs (https://github.com/scala/scala/blob/2.12.x/README.md, 
>> http://scala-lang.org/contribute/hacker-guide.html) to help you get 
>> started, and are always happy to help on 
>> https://gitter.im/scala/contributors! 
>>
>> On Tue, Nov 1, 2016 at 9:41 AM Raphael Bosshard <[email protected]> 
>> wrote:
>>
>>> Excellent. I'll give it a shot and come back if I need help. Do I need 
>>> to create a PR for that?
>>>
>>> On Tue, Nov 1, 2016 at 10:47 AM, Heather Miller <[email protected]> 
>>> wrote:
>>>
>>>> +1 to improving the REPL output such that it prints out the Scala 
>>>> method definition. I'd love to see this.
>>>> (I've always wondered why the REPL output wasn't friendlier!)
>>>>
>>>>
>>>>
>>>> On Tue, Nov 1, 2016 at 3:56 AM, Adriaan Moors <[email protected]> 
>>>> wrote:
>>>>
>>>>> I think everything needed is available from the compiler. Formatting 
>>>>> this nicely (especially with colors) is a bit finicky, but I don't think 
>>>>> meta would really help here.
>>>>>
>>>>> On Mon, Oct 31, 2016 at 6:58 PM Naftoli Gugenheim <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>> Could this be solved the easiest with scala.meta?
>>>>>>
>>>>>> On Mon, Oct 31, 2016, 6:46 PM Adriaan Moors <[email protected]> 
>>>>>> wrote:
>>>>>>
>>>>>>> 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.
>>>>>>>
>>>>>> -- 
>>>>>> 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.
>>>>>
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to a topic in the 
>>>> Google Groups "scala-language" group.
>>>> To unsubscribe from this topic, visit 
>>>> https://groups.google.com/d/topic/scala-language/xiDCISJzbOg/unsubscribe
>>>> .
>>>> To unsubscribe from this group and all its topics, 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.
>>>
>>

-- 
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.

------=_Part_1663_1066574718.1478327517242
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br>I already responded to the cross-posting elsewhere -- =
that different users have different needs --<br><br>but Oliver&#39;s commen=
t reminded me that the clever `//print` autocomplete mechanism is easy to o=
verlook.<br><br>I&#39;d like an output mode for REPL where it&#39;s basical=
ly doing what //print does. That is, echo what I typed with extra type info=
.<br><br>The only difference is that //print would not side-effect, but nob=
ody does that anyway.<br><br>For example, when I enter f(17), show me the e=
xpanded expression.<br><br><span style=3D"font-family: courier new,monospac=
e;">scala&gt; def f(i: Int)(implicit j: Int) =3D i + j<br>f: (i: Int)(impli=
cit j: Int)Int<br><br>scala&gt; implicit val x: Int =3D 42<br>x: Int =3D 42=
<br><br>scala&gt; f(17) //print<br>=C2=A0=C2=A0 $line4.$read.$iw.$iw.f(17)(=
$line5.$read.$iw.$iw.x) // : Int<br><br>scala&gt; f(17)<br>res0: Int =3D 59=
</span><br><br><br>On Thursday, November 3, 2016 at 4:55:07 AM UTC-7, Rapha=
el Bosshard wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;marg=
in-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"=
ltr">Hi all,<br><br>This is now <a href=3D"https://issues.scala-lang.org/br=
owse/SI-10023" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=
=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fissues.scala-lang.org=
%2Fbrowse%2FSI-10023\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHkU7Aaj7pru-v3=
bE0j0zWx7AcTig&#39;;return true;" onclick=3D"this.href=3D&#39;https://www.g=
oogle.com/url?q\x3dhttps%3A%2F%2Fissues.scala-lang.org%2Fbrowse%2FSI-10023\=
x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHkU7Aaj7pru-v3bE0j0zWx7AcTig&#39;;r=
eturn true;">https://issues.scala-lang.org/<wbr>browse/SI-10023</a>. We can=
 discuss the specifics (i.e. how the new output should look like) there.<br=
><br>Thanks for all the help and directions!<br><br>Raphael<br><br>Am Diens=
tag, 1. November 2016 17:58:05 UTC+1 schrieb Adriaan Moors:<blockquote clas=
s=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr">Yes, a PR will be needed for the C=
I to verify your changes. We have some docs (<a href=3D"https://github.com/=
scala/scala/blob/2.12.x/README.md" rel=3D"nofollow" target=3D"_blank" onmou=
sedown=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgi=
thub.com%2Fscala%2Fscala%2Fblob%2F2.12.x%2FREADME.md\x26sa\x3dD\x26sntz\x3d=
1\x26usg\x3dAFQjCNEeoSM5vBadv7OK7x9ecmP1GNJb_Q&#39;;return true;" onclick=
=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.c=
om%2Fscala%2Fscala%2Fblob%2F2.12.x%2FREADME.md\x26sa\x3dD\x26sntz\x3d1\x26u=
sg\x3dAFQjCNEeoSM5vBadv7OK7x9ecmP1GNJb_Q&#39;;return true;">https://github.=
com/scala/<wbr>scala/blob/2.12.x/README.md</a>, <a href=3D"http://scala-lan=
g.org/contribute/hacker-guide.html" rel=3D"nofollow" target=3D"_blank" onmo=
usedown=3D"this.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fsca=
la-lang.org%2Fcontribute%2Fhacker-guide.html\x26sa\x3dD\x26sntz\x3d1\x26usg=
\x3dAFQjCNH1f4Y2UK_3wr5WD5fthslBxnxrxw&#39;;return true;" onclick=3D"this.h=
ref=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fscala-lang.org%2Fcon=
tribute%2Fhacker-guide.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1f4Y2U=
K_3wr5WD5fthslBxnxrxw&#39;;return true;">http://scala-lang.org/<wbr>contrib=
ute/hacker-guide.html</a>) to help you get started, and are always happy to=
 help on <a href=3D"https://gitter.im/scala/contributors" rel=3D"nofollow" =
target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://www.google.com/ur=
l?q\x3dhttps%3A%2F%2Fgitter.im%2Fscala%2Fcontributors\x26sa\x3dD\x26sntz\x3=
d1\x26usg\x3dAFQjCNFxrd1IyKJT8kD0P-aHE8Wq3AXvBg&#39;;return true;" onclick=
=3D"this.href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgitter.i=
m%2Fscala%2Fcontributors\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFxrd1IyKJT=
8kD0P-aHE8Wq3AXvBg&#39;;return true;">https://gitter.im/scala/<wbr>contribu=
tors</a>!=C2=A0</div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Tue=
, Nov 1, 2016 at 9:41 AM Raphael Bosshard &lt;<a rel=3D"nofollow">raphael..=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div di=
r=3D"ltr">Excellent. I&#39;ll give it a shot and come back if I need help. =
Do I need to create a PR for that?<br></div><div><br><div class=3D"gmail_qu=
ote"></div></div><div><div class=3D"gmail_quote">On Tue, Nov 1, 2016 at 10:=
47 AM, Heather Miller <span dir=3D"ltr">&lt;<a rel=3D"nofollow">heather....=
@gmail.com</a>&gt;</span> wrote:<br></div></div><div><div class=3D"gmail_qu=
ote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">+1 to improving the RE=
PL output such that it prints out the Scala method definition. I&#39;d love=
 to see this.<div>(I&#39;ve always wondered why the REPL output wasn&#39;t =
friendlier!)</div><div><div><div><br></div><div><br></div><div><br><div cla=
ss=3D"gmail_quote">On Tue, Nov 1, 2016 at 3:56 AM, Adriaan Moors <span dir=
=3D"ltr">&lt;<a rel=3D"nofollow">[email protected]</a>&gt;</span> wrote:=
<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I think everything need=
ed is available from the compiler. Formatting this nicely (especially with =
colors) is a bit finicky, but I don&#39;t think meta would really help here=
.</div><div><div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Mon, Oc=
t 31, 2016 at 6:58 PM Naftoli Gugenheim &lt;<a rel=3D"nofollow">nafto...@gm=
ail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"=
margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir=3D"lt=
r">Could this be solved the easiest with scala.meta?</p>
<br><div class=3D"gmail_quote"><div dir=3D"ltr">On Mon, Oct 31, 2016, 6:46 =
PM Adriaan Moors &lt;<a rel=3D"nofollow">[email protected]</a>&gt; wrote=
:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I agree the outp=
ut would be nicer if we printed out the method definition in legal Scala. T=
he current output is just printing the (strictly) internal representation o=
f a method type.<div><br></div><div>I would be happy to help to improve thi=
s. I believe the logic for the output is here:=C2=A0<a href=3D"https://gith=
ub.com/scala/scala/blob/2.12.x/src/repl/scala/tools/nsc/interpreter/MemberH=
andlers.scala#L156" rel=3D"nofollow" target=3D"_blank" onmousedown=3D"this.=
href=3D&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fscal=
a%2Fscala%2Fblob%2F2.12.x%2Fsrc%2Frepl%2Fscala%2Ftools%2Fnsc%2Finterpreter%=
2FMemberHandlers.scala%23L156\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHGbqL=
DNWU7cpMYECTo0i0sddJN3Q&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fscala%2Fscala%2Fblob=
%2F2.12.x%2Fsrc%2Frepl%2Fscala%2Ftools%2Fnsc%2Finterpreter%2FMemberHandlers=
.scala%23L156\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHGbqLDNWU7cpMYECTo0i0=
sddJN3Q&#39;;return true;">https://github.com/<wbr>scala/scala/blob/2.12.x/=
src/<wbr>repl/scala/tools/nsc/<wbr>interpreter/MemberHandlers.<wbr>scala#L1=
56</a></div><div><br></div><div>cheers</div></div><div dir=3D"ltr"><div>adr=
iaan</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 rel=3D"nofollow">cur...@gmai=
l.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div><div><div><div><div><div><br></div>=C2=A0=C2=A0=C2=A0=C2=A0 Hello,<=
br><br></div>=C2=A0 The line is just:<br><br></div>&lt;name&gt;: &lt;type&g=
t;<br><br></div>=C2=A0 With &quot;(in: String)Int&quot; being the type of t=
he method. <br><br></div>=C2=A0 This resembles JNI method type notation, wh=
ere the return type goes directly after the parens, too.<br><br></div>=C2=
=A0=C2=A0=C2=A0=C2=A0 Best, Oliver<br></div><div><br><div class=3D"gmail_qu=
ote">On Mon, Oct 31, 2016 at 5:11 PM, Justin du coeur <span dir=3D"ltr">&lt=
;<a rel=3D"nofollow">[email protected]</a>&gt;</span> wrote:<br><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><div dir=3D"ltr">(Note that this conversation started o=
ver on Gitter, and moved here.)<div><br></div><div>That&#39;s fair, but not=
e that the output <i>isn&#39;t legal Scala</i>.=C2=A0 The &quot;method crea=
ted&quot; bit I agree is arguable, but it really is kind of weird and confu=
sing that there&#39;s no colon before &quot;Int&quot; in the output -- the =
output syntax seems strangely 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><br></div><div>I should note that I don&#39;t care passionately -=
- I don&#39;t use the REPL much myself.=C2=A0 But this seems like a pointle=
ss roadbump for new users, having the output be almost, but not quite, lega=
l Scala.</div><div><br></div><div>And really, is &quot;unnecessary clutter&=
quot; (at least in small amounts) actually a problem in the REPL?=C2=A0 I w=
ould say that clarity is likely a higher priority than output conciseness..=
.</div></div><div><div><div><br><div class=3D"gmail_quote">On Mon, Oct 31, =
2016 at 4:55 PM, Oliver Ruebenacker <span dir=3D"ltr">&lt;<a rel=3D"nofollo=
w">[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quo=
te" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"=
><div dir=3D"ltr"><div><div><div><br></div>=C2=A0=C2=A0=C2=A0=C2=A0 Hello,<=
br><br></div>=C2=A0 That would add unnecessary clutter. Whoever entered the=
 line knows they used def. <br><br></div>=C2=A0=C2=A0=C2=A0=C2=A0 Best, Oli=
ver<br></div><div><div><div><br><div class=3D"gmail_quote">On Mon, Oct 31, =
2016 at 4:51 PM, Raphael Bosshard <span dir=3D"ltr">&lt;<a rel=3D"nofollow"=
>[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex"><div dir=3D"ltr">Hi all,<br><br>have you ever noticed how confusing the=
 Scala REPL output it?<br><br><div style=3D"background-color:rgb(250,250,25=
0);border-color:rgb(187,187,187);border-style:solid;border-width:1px"><code=
><div><span style=3D"color:#000">scala</span><span style=3D"color:#660">&gt=
;</span><span style=3D"color:#000"> </span><span style=3D"color:#008">def</=
span><span style=3D"color:#000"> foo</span><span style=3D"color:#660">(</sp=
an><span style=3D"color:#008">in</span><span style=3D"color:#660">:</span><=
span style=3D"color:#000"> </span><span style=3D"color:#606">String</span><=
span style=3D"color:#660">):</span><span style=3D"color:#000"> </span><span=
 style=3D"color:#606">Int</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=
=3D"color:#660">???</span><span style=3D"color:#000"><br>foo</span><span st=
yle=3D"color:#660">:</span><span style=3D"color:#000"> </span><span style=
=3D"color:#660">(</span><span style=3D"color:#008">in</span><span style=3D"=
color:#660">:</span><span style=3D"color:#000"> </span><span style=3D"color=
:#606">String</span><span style=3D"color:#660">)</span><span style=3D"color=
:#606">Int</span><span style=3D"color:#000"><br></span></div></code></div><=
br>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 shou=
ld display something like this:<br><span style=3D"color:#000"></span><br><s=
pan style=3D"color:#000"></span><div style=3D"background-color:rgb(250,250,=
250);border-color:rgb(187,187,187);border-style:solid;border-width:1px"><co=
de><div><span style=3D"color:#000">method created</span><span style=3D"colo=
r:#660">:</span><span style=3D"color:#000"> foo</span><span style=3D"color:=
#660">(</span><span style=3D"color:#008">in</span><span style=3D"color:#660=
">:</span><span style=3D"color:#000"> </span><span style=3D"color:#606">Str=
ing</span><span style=3D"color:#660">):</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#606">Int</span><span style=3D"color:#000"> <br>=
</span></div></code></div><code></code><br><code><div><span style=3D"color:=
#000"></span></div></code>Would someone support/guide me in fixing this?<br=
><br>Cheers,<br>Raphael<span><font color=3D"#888888"><br><br><br><br></font=
></span></div><span><font color=3D"#888888">

<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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</font></span></blockquote></div><br><br clear=3D"all"><br></div></div><spa=
n><font color=3D"#888888">-- <br><div><div dir=3D"ltr"><div><div dir=3D"ltr=
"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div>Oliver Ruebenacker<br></=
div><div>Senior Software Engineer, <a href=3D"http://www.type2diabetesgenet=
ics.org/" rel=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#3=
9;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.type2diabetesgenetics.org=
%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFVE8xTGqlzANyuan2sVDo75uy-vA&#3=
9;;return true;" onclick=3D"this.href=3D&#39;http://www.google.com/url?q\x3=
dhttp%3A%2F%2Fwww.type2diabetesgenetics.org%2F\x26sa\x3dD\x26sntz\x3d1\x26u=
sg\x3dAFQjCNFVE8xTGqlzANyuan2sVDo75uy-vA&#39;;return true;">Diabetes Portal=
</a>, <a href=3D"http://www.broadinstitute.org/" rel=3D"nofollow" target=3D=
"_blank" onmousedown=3D"this.href=3D&#39;http://www.google.com/url?q\x3dhtt=
p%3A%2F%2Fwww.broadinstitute.org%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjC=
NHloBLjHUP5Yhb6LyVOZ-JE5b4Y5A&#39;;return true;" onclick=3D"this.href=3D&#3=
9;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.broadinstitute.org%2F\x26=
sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHloBLjHUP5Yhb6LyVOZ-JE5b4Y5A&#39;;retu=
rn true;">Broad Institute</a><br></div><br></div></div></div></div></div></=
div></div></div>
</font></span></div><div><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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</div></div></blockquote></div><br></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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</div></div></blockquote></div><br><br clear=3D"all"><br>-- <br><div><div d=
ir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr=
"><div>Oliver Ruebenacker<br></div><div>Senior Software Engineer, <a href=
=3D"http://www.type2diabetesgenetics.org/" rel=3D"nofollow" target=3D"_blan=
k" onmousedown=3D"this.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2=
F%2Fwww.type2diabetesgenetics.org%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQj=
CNFVE8xTGqlzANyuan2sVDo75uy-vA&#39;;return true;" onclick=3D"this.href=3D&#=
39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.type2diabetesgenetics.or=
g%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFVE8xTGqlzANyuan2sVDo75uy-vA&#=
39;;return true;">Diabetes Portal</a>, <a href=3D"http://www.broadinstitute=
.org/" rel=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;h=
ttp://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.broadinstitute.org%2F\x26sa\=
x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHloBLjHUP5Yhb6LyVOZ-JE5b4Y5A&#39;;return =
true;" onclick=3D"this.href=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2=
F%2Fwww.broadinstitute.org%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHloBL=
jHUP5Yhb6LyVOZ-JE5b4Y5A&#39;;return true;">Broad Institute</a><br></div><br=
></div></div></div></div></div></div></div></div>
</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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</div></div></blockquote></div><br></div></div></div></div></blockquote></d=
iv></div><div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v><div>

<p></p>

-- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;scala-language&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
d/topic/scala-language/xiDCISJzbOg/unsubscribe" rel=3D"nofollow" target=3D"=
_blank" onmousedown=3D"this.href=3D&#39;https://groups.google.com/d/topic/s=
cala-language/xiDCISJzbOg/unsubscribe&#39;;return true;" onclick=3D"this.hr=
ef=3D&#39;https://groups.google.com/d/topic/scala-language/xiDCISJzbOg/unsu=
bscribe&#39;;return true;">https://groups.google.com/d/<wbr>topic/scala-lan=
guage/<wbr>xiDCISJzbOg/unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a rel=
=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.</div></div></bloc=
kquote></div></div><div><div class=3D"gmail_quote"><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex"><div><div><br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</div></div></blockquote></div></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 rel=3D"nofollow">scala-languag...@googlegroups.<wbr>com</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" rel=
=3D"nofollow" target=3D"_blank" onmousedown=3D"this.href=3D&#39;https://gro=
ups.google.com/d/optout&#39;;return true;" onclick=3D"this.href=3D&#39;http=
s://groups.google.com/d/optout&#39;;return true;">https://groups.google.com=
/d/<wbr>optout</a>.<br>
</blockquote></div>
</blockquote></div></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 />

------=_Part_1663_1066574718.1478327517242--

------=_Part_1662_12763592.1478327517241--