On Fri, Mar 13, 2020 at 9:29 AM John Cowan <xxxxxx@ccil.org> wrote:
 
What I meant was that there is no easy-to-use constructor for a large record (unless you have keyword arguments), as the BOA constructor is illegible even with just 7 arguments.  So you end up constructing an empty record and then mutating each slot so it contains what you want. And then you think, well, why not reuse this object?  And then you're in trouble.

Ha.  At least there are no regular expressions.
 
So alternatively you write a user-level constructor that fakes keywords by passing multiple arguments (a plist) or an alist or some other dictionary.  And when you have gotten to there, why not just use the dictionary in the first place? 

You're making me think that SRFI 177 is important for more than just existing, growing APIs.  Sometimes, the Smalltalk approach of naming every argument at every call site seems smart.

Absent keywords arguments, I'm becoming convinced that you're right.  But it would be good to get some experience with using such an API.