This is substantially interesting to me personally, persuant a paste below, as a spectator of PLD.<div><br></div><div>Pretty keen to read the, Hey, but, wait,</div><div><br></div><div>Alfred Matthews.</div><div><br></div><div><br>Better Collaboration<br>One of the most difficult things about collaborative development is handling merge conflicts.<br><br>The vast majority of merge conflicts are results of non-functional changes: Renames, reformatting, textual movement of code lines between files, etc.<br><br>In Lamdu, "names", the "position" of the code and other non-functional aspects of code are separate from the code itself, and avoid conflicts.<br><br>Rename conflicts<br>To get a conflict due to "rename" operations, two developers must rename the same variable to two different names. Even then, the code is still executable, but its on-screen rendering will display a localized conflict.<br><br>Formatting conflicts<br>Formatting is automatic, so there is no way to generate a conflict.<br><br>Code movement conflicts<br>The "position" of code is meta-data attached to the code, helping to find that code and position its rendering.<br><br>Since code is not structured into text files, code "position" conflicts are similarly less harmful, less likely and localized.<br><br>Change tracking<br>Instead of heuristically guessing what changed in the code, as traditional version control systems do, Lamdu uses an integrated revision control system and records the changes by the programmer as revisions.<br><br>This acts as a record of the developer's intent, allowing the RCS to distinguish, for example, between function deletion and writing of a similar function, and the modification of that same function. The recording of intent helps prevent and resolve conflicts.<br><br>Regression Debugging<br>Integrated revision control and live test cases will allow "Regression Debugging".<br><br>When a change causes a regression, the root of the problem can be found quickly, by finding the deepest function application whose result value diverged from the correct version of the code.<br><br>Automatic Formatting and Sugaring<br>Lamdu attempts to take away as much inconsequential freedom from the developer, to free his mind and his key strokes to deal with the parts that matter in the code. Thus, Lamdu does not provide means to edit formatting on a case-by-case basis. Generalized changes to layout rules can be provided, instead.<br><br>Additionally, to avoid further stylistic dilemmas, Lamdu uses automatic sugaring of code, as the dual of typical "de-sugaring" done by textual languages.<br><br>The code is edited and displayed in its sugared form. The edits to this form are translated to lower-level, simpler edits of the stored language, which is de-sugared. Lamdu uses "co-macros" that capture patterns in the lower-level code and automatically sugar it to canonical form. This frees the programmer from worrying about whether to use sugar for each particular case.<br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 26, 2018, 5:16 AM Alan & Kim Zimmerman <<a href="mailto:alan.zimm@gmail.com">alan.zimm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">See <a href="http://lambdu.org" target="_blank">lambdu.org</a><br></div><div class="gmail_extra"><br><div class="gmail_quote"></div></div><div class="gmail_extra"><div class="gmail_quote">On 26 April 2018 at 10:47, Alex McLean <span dir="ltr"><<a href="mailto:alex@slab.org" target="_blank">alex@slab.org</a>></span> wrote:<br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I'm wondering if anyone has made a 'block editor' for Haskell, i.e. a<br>
syntax-aware text editor where you make a program by snapping together<br>
type-compatible words, usually with a mouse. Something similar to<br>
Scratch for example: <a href="https://scratch.mit.edu/" rel="noreferrer" target="_blank">https://scratch.mit.edu/</a><br>
<br>
Any leads appreciated!<br>
<br>
Best wishes<br>
<br>
alex<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div><br></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div>