<div dir="ltr"><div dir="ltr"><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">Stepping to one side of the discussion could I just  point out that, notation is not just about the form of the final program. One of the claimed strengths and appeals of FP is the opportunity for program transformation via a useful</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">repertoire of algebraic law, cf the work on Squiggol, and the numerous functional pearls by folk including Richard Bird <a style="color:rgb(17,85,204)" href="http://et.al/" target="_blank">et.al</a>..</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">This work befits from having concisely-expressed rules that open the road to manipulation - long-winded</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">identifiers suitable for large libraries are not necessarily ideal for algebraic</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">manipulation. Ye you could treat the two as separate entities, But a pleasant feature of Haskell is the ability to work with the notation both for developmemt and final program.</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent"><br></div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">Going back to the original proposal, I'm not bothered, I would probably just ignore a singleton library.  However I'm -1 on philosophical grounds.</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">I'm used to teaching FP to undergrads and half the battle is encouraging people to think functionally, to</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">make use of the underlying mathematics and computational model rather than transliterate <insert your favourite 'bete noir'> into Haskell. That means thinking of building programs from</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">functional fragments combined by suitable glue, and appreciating that data constructors can be used</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">as functions Yes it takes beginner's time to recognise some of the patterns,  and (:[] is just one such example(when the light dawns, </div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">the transformation is rewarding. I've lost count of the number of jaws I've had to pick off the floor :)</div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent"><br style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;overflow:visible;font-size-adjust:none;font-stretch:normal"></div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">So I don't want to make a mountain out of a molehill. If it will really  improve programmers' </div><div style="font:400 13.33px/19.99px Arial,Helvetica,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:normal;overflow:visible;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:transparent">lives then okay, So far I' not convinced, and but in fretting over final code can we please not   lose sight of the 'bigger picture' and challenges..</div><br clear="all"><br>-- <br><div class="gmail_signature" dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>David Duke</div><div><br></div><div><a href="mailto:E%3Aduke.j.david@gmail.com" target="_blank">E:duke.j.david@gmail.com</a></div><div>W:<a href="https://engineering.leeds.ac.uk/staff/334/Professor_David_Duke" target="_blank">https://engineering.leeds.ac.uk/staff/334/Professor_David_Duke</a></div></div></div></div></div></div></div></div></div></div></div>