<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Nice ++ returns list so no issue. list concat reverse of same list.<div class="">Clear. No need for empty case as it is already covered</div><div class=""><br class=""></div><div class="">Greets, Branimir.</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 28.09.2021., at 12:00, Anthony Clayden <<a href="mailto:anthony.d.clayden@gmail.com" class="">anthony.d.clayden@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><font face="arial, sans-serif" class="">From the department of improbable syntax/I don't get how this works, but it does:</font><div class=""><font face="arial, sans-serif" class=""><br class=""></font></div><div class=""><font face="arial, sans-serif" class="">>    f :: [a] -> [a]</font></div><font face="arial, sans-serif" class="">>    ;; f xs = xs ++ reverse xs<br class=""><br class="">Nicely (to my eye) groups/indents the binding under the signature. Especially handy with ScopedTypeVariables, to show how the scoped vars 'belong'<br class=""></font><div class=""><font face="arial, sans-serif" class=""><br class=""></font></div><div class=""><font face="arial, sans-serif" class="">>    f       :: forall a. [a] -> [a]<br class=""></font></div><div class=""><font face="arial, sans-serif" class="">>    ;; f xs = xs ++ ys<br class="">>       where<br class="">>         ys :: [a]<br class="">>         ys = reverse xs<br class=""></font><div class=""><font face="arial, sans-serif" class=""><br class=""></font></div></div><div class=""><font face="arial, sans-serif" class="">The doubled `;;` </font><span style="font-family:Arial,Helvetica,sans-serif" class="">stands out like a ditto. It </span>could be a single semicolon (which means there's an empty decl/binding between the semis -- I don't see that's allowed by the syntax).</div><div class=""><br class=""></div><div class=""><font face="arial, sans-serif" class="">Unfortunately, for multi-line bindings you need to repeat the `;;`</font></div><div class=""><font face="arial, sans-serif" class=""><br class=""></font></div><div class=""><font face="arial, sans-serif" class="">>    f       :: [a] -> [a]<br class="">>    ;; f [] = []<br class="">>    ;; f xs = xs ++ reverse xs<br class=""></font><br class=""></div></div>
_______________________________________________<br class="">Haskell-Cafe mailing list<br class="">To (un)subscribe, modify options or view archives go to:<br class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="">Only members subscribed via the mailman list are allowed to post.</div></blockquote></div><br class=""></div></body></html>