Re: The OCaml MOOC offered again?
"Douglas Lewit [email protected] [ocaml_beginners]" <[email protected]> Tue, 31 Jan 2017 17:25:15 -0600
| Newsgroups | gmane.comp.lang.ocaml.beginners |
|---|---|
| Message-ID | <CAM0XMJTz9Z=SCOP-+Q8OE9AxmAtTv_F7XnPVdNVoEygavVRcrg@mail.gmail.com> |
--94eb2c09490894cb2a05476c3e7e Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Alexandre, But what about Haskell? Haskell has a huge amount of documentation to support it. I believe Haskell originally began at the University of Edinborough in Scotland as a mostly academic initiative. Now if I visit Amazon.com there are DOZENS of books about Haskell, and www.oreilly.com now offers two or maybe three tutorial video collections on Haskell. Both Haskell and Scala are very well documented. So is F#. OCaml has much less documentation to support it, and that's a weakness. ( More a weakness of the culture than of the language per se. ) Other languages are also well supported with very good documentation. There must be hundreds of books and YouTube videos describing all the functions, libraries and applications of Python, Ruby, Java, JavaScript, etc, etc. Even in the obscure world of AI one can find some good documentation explaining how to write code in LISP and how to use Emacs as an IDE/editor. I just wish that the OCaml community would follow that example. I sort of get the feeling that the only way to really learn everything about OCaml is to get a job working at Jane Street. Otherwise.... well, good luck! Actually.... there's a good question. Does Jane Street have any documentation for OCaml that is *open to the public*? I've tried looking for some, but so far haven't had much success trying to find it. Best, Douglas. On Tue, Jan 31, 2017 at 2:17 PM, Alexandre Gouraud [email protected] [ocaml_beginners] < [email protected]> wrote: > > > Dears, > > Let me give you my two cents to this story. OCaml has been created by a > french "public" research organisation called Inria. Therefore, the > evolutions of the language have followed requirements that are way far fr= om > the promotion and adoption of a language by a majority of users. Their > requirements were more research oriented, with quite limited resources. I= f > it turns out that the language is useful and used by many researchers or > developers, fine, but it was/is not the initial objective, nor any long(e= r) > term objective. Research organizations, by nature, cannot deal with such > objectives, as Microsoft or Sun or Google do with their own language. Thi= s > being said, even business oriented organisation do not promote languages > for the fun of it, it is usually because they think it brings them > strategic advantage on their market...remember. > > At the end, INRIA's people don't have time anymore to promote the > language, develop it, write books and answer to questions. They mainly re= ly > on the community. This is why there is no decent environment for Windows > developers, and I am the first one to deplore it. Finally, remember that > it was a french initiative. I believe that because the engineers who firs= t > adopted it were not native English speakers was a barrier (and still is) = a > barrier to wider adoption of the language, despite the HUGE penetration o= f > this language in the world. You see here the power of the language of a > culture and the influence it allows. > > OCaml is great ! Keep coding :-) > > Cheers, > > Alexandre. > > 2017-01-31 17:58 GMT+01:00 Douglas Lewit [email protected] > [ocaml_beginners] <[email protected]>: > >> >> >> Looks like it's a major relief for you to type + instead of ^ ? Hahaha= hahaha.... >> very funny!!! I'm not sure if one language is really "better" than >> another, but I find it really interesting why Don Syme ( F#'s creator ) = did >> it his way and why Xavier Leroy ( OCaml's creator ) did it another way. >> Don Syme obviously made the decision that it was silly to have + for int= s >> and +. for floats, and I think in OCaml you need +/ for big ints, etc, >> etc. So Don Syme combined everything into one overloaded operator. Is = it >> good or bad? I'm not sure. It depends on the programmer and why you're >> programming. BUT.... I still believe that language documentation is ver= y, >> very important. You can have the greatest computer language in the worl= d, >> but if nobody writes about it or teaches it.... then who is going to kno= w >> about it except a minority of elite developers?! ( And the elitist >> mentality will not help a language to become popular and successful. ) >> >> The OCaml MOOC is a fun course, and full of great information, but I >> don't like that the team behind it is pretty bad about answering email >> queries. I sent a couple of emails to OCamlPro requesting more informat= ion >> and did not get back a single reply. I guess I'm not important enough f= or >> them to worry about! ( Or so they think. ) Again.... a wonderful >> language, but the community of people supporting the language have to do >> their work to promote the language. Unless of course we want OCaml to g= o >> the route of Pascal or Perl! >> >> >> On Mon, Jan 30, 2017 at 10:43 PM, Pierpaolo Bernardi [email protected] >> [ocaml_beginners] <[email protected]> wrote: >> >>> >>> >>> On Mon, Jan 30, 2017 at 10:53 PM, Douglas Lewit [email protected] >>> [ocaml_beginners] <[email protected]> wrote: >>> > >>> > >>> > >>> > Hello everyone, >>> > >>> > Remember that OCaml MOOC offered through that university in Paris, >>> France? Does anyone know if that course is going to be offered again in= the >>> near future? It wasn't bad! Definitely challenging, but I learned a lot= . >>> >>> The MOOC has been offered in 2015 and in 2016, both times it started >>> around Oct/Nov. Lacking any other information, we can extrapolate >>> from this small data set and hope that the MOOC will be offered again >>> toward the end of 2017 :) >>> >>> > If I want to concatenate the strings "Hello, " and "World!" in OCaml = I >>> have to write "Hello, " ^ "World!", but in F# I would just write "Hello= , " >>> + "World!". >>> >>> Just for curiosity, why in Ocaml you *HAVE*TO* use ^, while in F# you >>> *JUST* use + ? >>> >>> Looks like it's a major relief for you to type + instead of ^ ? >>> >>> > The operator overloading feature however does have a disadvantage >>> because if I don't make use of specific type annotations then the type >>> checker automatically assumes that my function arguments are integers..= .. >>> and that is not always an accurate assumption! >>> >>> That's correct. And in addition, even when the assumptions turn out >>> to be accurate, the code is less clear for a human reader. >>> >>> Cheers >>> >> >> > > > -- > Alexandre > >=20 > --94eb2c09490894cb2a05476c3e7e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm= l4/strict.dtd"> <html> <head> </head> =20 <body style=3D"background-color: #fff;"> <span style=3D"display:none"> </span> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id=3D"ygrp-mlmsg" style=3D"position:relative;"> <div id=3D"ygrp-msg" style=3D"z-index: 1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id=3D"ygrp-text" > =20=20=20=20=20=20 =20=20=20=20=20=20 <p><div dir=3D"ltr"><font size=3D"4">Hi Alexandre,</font><div><font s= ize=3D"4"><br></font></div><div><font size=3D"4">But what about Haskell?=C2= =A0 Haskell has a huge amount of documentation to support it.=C2=A0 I belie= ve Haskell originally began at the University of Edinborough in Scotland as= a mostly academic initiative.=C2=A0 Now if I visit Amazon.com there are DO= ZENS of books about Haskell, and <a href=3D"http://www.oreilly.com">www.ore= illy.com</a> now offers two or maybe three tutorial video collections on Ha= skell.=C2=A0 Both Haskell and Scala are very well documented.=C2=A0 So is F= #.=C2=A0 OCaml has much less documentation to support it, and that's a = weakness. =C2=A0( More a weakness of the culture than of the language per s= e. ) =C2=A0 Other languages are also well supported with very good document= ation.=C2=A0 There must be hundreds of books and YouTube videos describing = all the functions, libraries and applications of Python, Ruby, Java, JavaSc= ript, etc, etc.=C2=A0 Even in the obscure world of AI one can find some goo= d documentation explaining how to write code in LISP and how to use Emacs a= s an IDE/editor.=C2=A0 I just wish that the OCaml community would follow th= at example.=C2=A0 I sort of get the feeling that the only way to really lea= rn everything about OCaml is to get a job working at Jane Street.=C2=A0 Oth= erwise.... well, good luck!</font></div><div><font size=3D"4"><br></font></= div><div><font size=3D"4">Actually.... there's a good question.=C2=A0 D= oes Jane Street have any documentation for OCaml that is <i><u>open to the = public</u></i>?=C2=A0 I've tried looking for some, but so far haven'= ;t had much success trying to find it.</font></div><div><font size=3D"4"><b= r></font></div><div><font size=3D"4">Best,</font></div><div><font size=3D"4= "><br></font></div><div><font size=3D"4">Douglas.</font></div><div><font si= ze=3D"4"><br></font></div><div><font size=3D"4"><br></font></div><div><font= size=3D"4"><br></font></div></div><div class=3D"gmail_extra"><br><div clas= s=3D"gmail_quote">On Tue, Jan 31, 2017 at 2:17 PM, Alexandre Gouraud <a hre= f=3D"mailto:[email protected]">alexandre.gouraud@enst-bret= agne.fr</a> [ocaml_beginners] <span dir=3D"ltr"><<a href=3D"mailto:ocaml= [email protected]" target=3D"_blank">[email protected]= om</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"bord= er-left:1px #ccc solid;"> <u></u> =20 <div style=3D"background-color:#fff;"> <span>=C2=A0</span> <div id=3D"m_-6515622371976885825ygrp-mlmsg"> <div id=3D"m_-6515622371976885825ygrp-msg"> <div id=3D"m_-6515622371976885825ygrp-text"> =20=20=20=20=20=20 =20=20=20=20=20=20 <p></p><div dir=3D"ltr"><div>Dears, </div><div><br></div><div>Let me = give you my two=C2=A0cents to this story. <span id=3D"m_-651562237197688582= 5:141.42">OCaml</span> has been created by a french "public"=C2= =A0research organisation called <span id=3D"m_-6515622371976885825:141.43">= Inria</span>. Therefore, the evolutions of the language have followed requi= rements that are way far from the promotion and adoption of a language by a= majority of users. Their requirements were more research oriented, with qu= ite limited resources.=C2=A0If it turns out that the language is useful and= used by many researchers or developers, fine, but it was/is not the initia= l objective, nor any long(<span id=3D"m_-6515622371976885825:141.44">er</sp= an>) term objective. Research <span id=3D"m_-6515622371976885825:141.45">or= ganizations</span>, by nature, cannot deal with such objectives, as Microso= ft or Sun or Google do with their own language. This being said, even busin= ess oriented organisation do not promote languages for the fun of it, it is= usually because they think it brings them strategic advantage on their mar= ket...remember. </div><div><br></div><div>At the end, <span id=3D"m_-651562= 2371976885825:141.46">INRIA's</span> people don't have time anymore= to promote the language, develop it, write books and answer to questions. = They mainly rely on the community. This is why there is no decent environme= nt for Windows developers, and I am the first one to deplore it. Finally, r= emember that it=C2=A0was a french initiative.=C2=A0I=C2=A0believe that beca= use=C2=A0the=C2=A0engineers who first adopted it=C2=A0were not native Engli= sh speakers was a barrier (and still is)=C2=A0a barrier to wider adoption o= f the language, despite the=C2=A0HUGE penetration of this language in the w= orld. You see here the power of the language of a culture and the influence= it allows. </div><div><br></div><div><span id=3D"m_-6515622371976885825:14= 1.47">OCaml</span> is great ! Keep coding :-)</div><div><br></div><div>Chee= rs, </div><div><br></div><div>Alexandre. </div></div><div class=3D"gmail_ex= tra"><br><div class=3D"gmail_quote">2017-01-31 17:58 GMT+01:00 Douglas = Lewit <a href=3D"mailto:[email protected]" target=3D"_blank">delewit@gmail.= com</a> [ocaml_beginners] <span dir=3D"ltr"><<a href=3D"mailto:ocaml_beg= [email protected]" target=3D"_blank">ocaml_beginners@yahoogroups.<wbr>= com</a>></span>:<br><blockquote class=3D"gmail_quote" style=3D"border-le= ft:1px #ccc solid;"> <u></u> =20 <div style=3D"background-color:#fff;"> <span>=C2=A0</span> <div id=3D"m_-6515622371976885825m_-8400783697855280523ygrp-mlmsg"> <div id=3D"m_-6515622371976885825m_-8400783697855280523ygrp-msg"> <div id=3D"m_-6515622371976885825m_-8400783697855280523ygrp-text"> =20=20=20=20=20=20 =20=20=20=20=20=20 <p></p><div dir=3D"ltr"><span style=3D"font-family:georgia;font-size:= 13px;">Looks like it's a major relief for you to type + instead of ^ ? = =C2=A0 </span><font face=3D"monospace, monospace" size=3D"4">Hahahahahaha..= .. very funny!!!=C2=A0 I'm not sure if one language is really "bet= ter" than another, but I find it really interesting why Don Syme ( F#&= #39;s creator ) did it his way and why Xavier Leroy ( OCaml's creator )= did it another way.=C2=A0 Don Syme obviously made the decision that it was= silly to have + for ints and +. for floats, and I think in OCaml you need = +/ for big ints, etc, etc.=C2=A0 So Don Syme combined everything into o= ne overloaded operator.=C2=A0 Is it good or bad?=C2=A0 I'm not sure.=C2= =A0 It depends on the programmer and why you're programming.=C2=A0 BUT.= ... I still believe that language documentation is very, very important.=C2= =A0 You can have the greatest computer language in the world, but if nobody= writes about it or teaches it.... then who is going to know about it excep= t a minority of elite developers?! =C2=A0( And the elitist mentality will n= ot help a language to become popular and successful. )</font><div><font fac= e=3D"monospace, monospace" size=3D"4"><br></font></div><div><font face=3D"m= onospace, monospace" size=3D"4">The OCaml MOOC is a fun course, and full of= great information, but I don't like that the team behind it is pretty = bad about answering email queries.=C2=A0 I sent a couple of emails to OCaml= Pro requesting more information and did not get back a single reply.=C2=A0 = I guess I'm not important enough for them to worry about! =C2=A0( Or so= they think. ) =C2=A0Again.... a wonderful language, but the community of p= eople supporting the language have to do their work to promote the language= .=C2=A0 Unless of course we want OCaml to go the route of Pascal or Perl!</= font></div><div><font face=3D"monospace, monospace" size=3D"4"><br></font><= /div></div><span><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">= On Mon, Jan 30, 2017 at 10:43 PM, Pierpaolo Bernardi <a href=3D"mailto:olop= [email protected]" target=3D"_blank">[email protected]</a> [ocaml_beginners= ] <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" = target=3D"_blank">[email protected]<wbr>om</a>></span> wrote= :<br><blockquote class=3D"gmail_quote" style=3D"border-left:1px #ccc solid;= "> <u></u> =20 <div style=3D"background-color:#fff;"> <span>=C2=A0</span> <div id=3D"m_-6515622371976885825m_-8400783697855280523m_-70011090142115874= 05ygrp-mlmsg"> <div id=3D"m_-6515622371976885825m_-8400783697855280523m_-700110901421158= 7405ygrp-msg"> <div id=3D"m_-6515622371976885825m_-8400783697855280523m_-7001109014211= 587405ygrp-text"> =20=20=20=20=20=20 =20=20=20=20=20=20 <p><span>On Mon, Jan 30, 2017 at 10:53 PM, Douglas Lewit <a href=3D"m= ailto:[email protected]" target=3D"_blank">[email protected]</a><br> [ocaml_beginners] <<a href=3D"mailto:[email protected]" ta= rget=3D"_blank">[email protected]<wbr>om</a>> wrote:<br> ><br> ><br> ><br> > Hello everyone,<br> ><br> > Remember that OCaml MOOC offered through that university in Paris, Fra= nce? Does anyone know if that course is going to be offered again in the n= ear future? It wasn't bad! Definitely challenging, but I learned a lo= t.<br> <br></span> The MOOC has been offered in 2015 and in 2016, both times it started<br> around Oct/Nov. Lacking any other information, we can extrapolate<br> from this small data set and hope that the MOOC will be offered again<br> toward the end of 2017 :)<span><br> <br> > If I want to concatenate the strings "Hello, " and "W= orld!" in OCaml I have to write "Hello, " ^ "World!&quo= t;, but in F# I would just write "Hello, " + "World!".<= br> <br></span> Just for curiosity, why in Ocaml you *HAVE*TO* use ^, while in F# you<br> *JUST* use + ?<br> <br> Looks like it's a major relief for you to type + instead of ^ ?<span><b= r> <br> > The operator overloading feature however does have a disadvantage beca= use if I don't make use of specific type annotations then the type chec= ker automatically assumes that my function arguments are integers.... and t= hat is not always an accurate assumption!<br> <br></span> That's correct. And in addition, even when the assumptions turn out<br= > to be accurate, the code is less clear for a human reader.<br> <br> Cheers<br> </p> </div> =20=20=20=20=20 =20=20=20=20 <div style=3D"color:#fff;height:0;"></div> </div> =20=20 </div></div></blockquote></div><br></div> </span><p></p> </div> =20=20=20=20=20 =20=20=20=20 <div style=3D"color:#fff;height:0;"></div> </div> =20=20 </div></div></blockquote></div><br><br clear=3D"all"><br>-- <br><div class= =3D"m_-6515622371976885825gmail_signature" data=3D"https://ci4.googleuserco= ntent.com/proxy/CpYzkcDKjPf-NqFCSu4GBqoQ_5P1dDkfTMWPGDqglo-e-uanL4gIS02e2U0= =3Ds0-d-e1-ft#http://gmail_signature">Alexandre</div> </div> <p></p> </div> =20=20=20=20=20 =20=20=20=20 <div style=3D"color:#fff;height:0;"></div> </div> =20=20 </div></div></blockquote></div><br></div> </p> </div> =20=20=20=20=20 <!--~-|**|PrettyHtmlStart|**|-~--> <div style=3D"color: #fff; height: 0;">__._,_.___</div> =20=20=20=20=20=20=20=20=20=20 =20=20 =20 =20=20=20=20 <div style=3D"clear:both"> </div> <div id=3D"fromDMARC" style=3D"margin-top: 10px;"> <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background= -color:#E3E3E3;"> Posted by: Douglas Lewit <[email protected]> <hr style= =3D"height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;"> </div> <div style=3D"clear:both"> </div> <table cellspacing=3D4px style=3D"margin-top: 10px; margin-bottom: 10px= ; color: #2D50FD;"> <tbody> <tr> <td style=3D"font-size: 12px; font-family: arial; font-weight: bo= ld; padding: 7px 5px 5px;" > <a style=3D"text-decoration: none; color: #2D50FD= " href=3D"https://groups.yahoo.com/neo/groups/ocaml_beginners/conversations= /messages/14746;_ylc=3DX3oDMTJxcXZqdHNoBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQE= Z3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE0NzQ2BHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTQ= 4NTkwNTE1OQ--?act=3Dreply&messageNum=3D14746">Reply via web post</a> </td> <td>•</td> <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p= x 5px;" > <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%22ocaml_= beginners%22%3A%3A%5B%5D%20The%20OCaml%20MOOC%20offered%20again%3F" style= =3D"text-decoration: none; color: #2D50FD;"> Reply to sender </a> </td> <td>•</td> <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p= x 5px;"> <a href=3D"mailto:[email protected]?subject=3DRe%= 3A%20%22ocaml_beginners%22%3A%3A%5B%5D%20The%20OCaml%20MOOC%20offered%20aga= in%3F" style=3D"text-decoration: none; color: #2D50FD"> Reply to group </a> </td> <td>•</td> <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p= x 5px;" > <a href=3D"https://groups.yahoo.com/neo/groups/ocaml_beginners/= conversations/newtopic;_ylc=3DX3oDMTJlMGdqNjE3BF9TAzk3MzU5NzE0BGdycElkAzQ5O= TkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTQ4NTkwNTE1= OQ--" style=3D"text-decoration: none; color: #2D50FD">Start a New Topic</a> </td> <td>•</td> <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p= x 5px;color: #2D50FD;" > <a href=3D"https://groups.yahoo.com/neo/groups/= ocaml_beginners/conversations/topics/14740;_ylc=3DX3oDMTM2NjY4b3BjBF9TAzk3M= zU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE0NzQ2BHNlYwNm= dHIEc2xrA3Z0cGMEc3RpbWUDMTQ4NTkwNTE1OQR0cGNJZAMxNDc0MA--" style=3D"text-dec= oration: none; color: #2D50FD;">Messages in this topic</a> (7) </td> </tr> </tbody> </table> =20=20=20=20=20=20=20=20 <div id=3D"megaphoneModule"> <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; backgr= ound-color:#E3E3E3;"> <div> <div class=3D"stream" style=3D"margin-bottom:10px;"> <div style=3D"background-color:white;"> <div class=3D"sn-img" style=3D"display:inline;"><img name=3D"tn= _file" style=3D"padding:0px 10px;vertical-align:top;margin-top:5px;" src=3D= "https://s.yimg.com/ru/static/images/yg/img/megaphone/1464031581_phpFA8bON"= height=3D"82" width=3D"82"></div> <div class=3D"mod-txt" style=3D"display:inline-block;"> <a rel=3D"nofollow" name=3D"sub_url" target=3D"_blank" href= =3D"https://yho.com/1wwmgg" style=3D"color:#0000FF;display:block;margin-lef= t:5px;text-decoration:none;"><span style=3D"font-size:15px;">Have you tried= the highest rated email app?</span></a> <div style=3D"max-width:530px;padding:2px 5px;">With 4.5 st= ars in iTunes, the Yahoo Mail app is the highest rated email app on the mar= ket. What are you waiting for? Now you can access all your inboxes (Gmail, = Outlook, AOL and more) in one place. Never delete an email again with 1000G= B of free cloud storage.</div> </div> </div> </div> </div>=20=20 =20=20=20=20=20 <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background-col= or:#E3E3E3;"> </div> <!------- Start Nav Bar ------> <div id=3D"ygrp-grfd" style=3D"font-family: Verdana; font-size: 12px; p= adding: 15px 0;"> =20=20=20=20=20=20 <!-- |**|begin egp html banner|**| --> Archives up to December 31, 2011 are also downloadable at <a href=3D"= http://www.connettivo.net/cntprojects/ocaml_beginners">http://www.connettiv= o.net/cntprojects/ocaml_beginners</a><BR> The archives of the very official ocaml list (the seniors' one) can be foun= d at <a href=3D"http://caml.inria.fr">http://caml.inria.fr</a><BR> Attachments are banned and you're asked to be polite, avoid flames etc. = =20=20 <!-- |**|end egp html banner|**| --> </div> =20=20 =20 <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-family: Ver= dana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-transf= orm: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/ocaml_begi= nners/info;_ylc=3DX3oDMTJlbWh2dmJxBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc= 3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ4NTkwNTE1OQ--" style= =3D"text-decoration: none;">Visit Your Group</a></span> <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in= line;"> </ul> </div> <div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p= x; padding: 0 2px 0 0; clear: both;"> <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJkMW9ocDJwBF9TAzk3ND= c2NTkwBGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzd= GltZQMxNDg1OTA1MTYw" style=3D"float: left;"><img src=3D"http://l.yimg.com/r= u/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height=3D"15"= width=3D"137" alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a> <div style=3D"color: #747575; float: right;"> • <a href=3D"https://i= nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio= n: none;">Privacy</a> • <a href=3D"mailto:ocaml_beginners-unsubscribe@= yahoogroups.com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Uns= ubscribe</a> • <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/t= erms/" style=3D"text-decoration: none;">Terms of Use</a> </div> </div> <br> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> =20 <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m= argin:0 0 25px 0; background: #fff;"> <!-- Start Recommendations --> <div id=3D"ygrp-reco"> </div> <!-- End Recommendations --> </div> <!-- |**|end egp html banner|**| --> <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D4999194/grpspI= d=3D1705006764/msgId=3D14746/stime=3D1485905159" width=3D"1" height=3D"1"> = <br> <img src=3D"http://y.analytics.yahoo.com/fpc.pl?ywarid=3D515FB27823A7407E&a= =3D10001310322279&js=3Dno&resp=3Dimg&cf12=3DCP" width=3D"1" height=3D"1">=20 <div style=3D"color: #fff; height: 0;">__,_._,___</div> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type=3D"text/css"> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial; margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-mkp .ad p { margin: 0; } #ygrp-mkp .ad a { color: #0000ff; text-decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad { margin-bottom: 10px; padding: 0 0; } #actions { font-family: Verdana; font-size: 11px; padding: 10px 0; } #activity { background-color: #e0ecee; float: left; font-family: Verdana; font-size: 10px; padding: 10px; } #activity span { font-weight: 700; } #activity span:first-child { text-transform: uppercase; } #activity span a { color: #5085b6; text-decoration: none; } #activity span span { color: #ff7900; } #activity span .underline { text-decoration: underline; } .attach { clear: both; display: table; font-family: Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach div a { text-decoration: none; } .attach img { border: none; padding-right: 5px; } .attach label { display: block; margin-bottom: 5px; } .attach label a { text-decoration: none; } =20=20 blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-size: 13px; font-weight: 700; } .bold a { text-decoration: none; } dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p span { margin-right: 10px; font-family: Verdana; font-weight: 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-table div div a { text-decoration: none; } div.attach-table { width: 400px; } div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi= le-title a:visited { text-decoration: none; } div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div= .photo-title a:visited { text-decoration: none; } div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family: Verdana; font-size: 10px; font-weight: normal; } .green { color: #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; } #photos div { float: left; width: 72px; } #photos div div { border: 1px solid #666666; height: 62px; overflow: hidden; width: 62px; } #photos div label { color: #666666; font-size: 10px; overflow: hidden; text-align: center; white-space: nowrap; width: 64px; } #reco-category { font-size: 77%; } #reco-desc { font-size: 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /* border-right: 0px solid #000;*/ margin-right: 2px; padding-right: 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial, helvetica,clean, sans-serif; *font-size: small; *font: x-small; } #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg select, input, textarea { font: 99% Arial, Helvetica, clean, sans-serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo { padding-bottom: 10px; } #ygrp-msg p a { font-family: Verdana; } #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; } #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li { font-size: 77%; list-style-type: square; padding: 6px 0; }=20 #ygrp-sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-right: none !important;=20 }=20 --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html> <!-- end group email --> --94eb2c09490894cb2a05476c3e7e--