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.