Oh, my version is an error. I implemented the macro before definitions in (some) expression contexts were a thing.
Andy did a marvellous thing implementinf the new letrec: if it is possible, letrec will have no overhead. It also automatically handle dependant clauses: even though it might seem counterintuitive, the guile-proper version will do the right thing always. The syntactic differentiation mine does is just there for our feeble human minds, at least with regards to what guile-proper is doing. So TL/DR: guiles way is the correct way. -- Linus Björnstam On Sun, 6 Jun 2021, at 14:02, Dr. Arne Babenhauserheide wrote: > > Linus Björnstam <linus.inter...@fastmail.se> writes: > > > becomes ONE letrec under gulie3, whereas my library turns it into > > (letrec ((a 2) (b 3)) > > (display "hej") > > (letrec ((c 3)) > > (+ a b c))) > > > > That should be an easy fix, again if there is any interest. > > I’m not sure which approach I prefer. Your approach is more precise, but > I slightly lean towards the Guile3-version, because it does not change > behaviour when I put a pretty-print between two defines. > > Though I would want a precise approach inside other forms (like when: > separating inside when and outside when). > > Best wishes, > Arne > -- > Unpolitisch sein > heißt politisch sein > ohne es zu merken > > Attachments: > * signature.asc