Re: R7RS-large backward compatibility Lassi Kortela 05 Mar 2020 19:51 UTC
> To me, now the question comes up how to write specifications for > SRFIs that want to make use of keyword arguments. This is the top question on my mind as well :) > There implementation may depend on a specific system like SRFI 177, but > the interface should be opaque. Enthusiastically agreed. > I don't think that's possible. Please elaborate on the reason. Would we run into problems if we tried to specify a super-minimal contract about what guarantees present and future keyword systems provide to help SRFI writers? > A future SRFI that needs to use keywords > could depend on SRFI 177 , and write: > > (call/kw example string1 string2 string3 &key :foo number :bar symbol > :baz list) -> vector > > (This may vary depending on the final form of SRFI 177.) > Alternatively it can depend on SRFIs 88 and 89, and write: > > (example string1 string2 string3 foo: number bar: symbol baz: list) -> > vector > > Or it could say that either can be used depending on which SRFIs are > available. But if you want an abstraction over both of them, then I > think that SRFI 177 (up to renaming) *is* that abstraction. This is all very interesting. I don't yet understand all the implications. I'll wait for more comments from you and others which will hopefully alleviate my confusion and inexperience a bit.