> ((engine-set engine) okvs ((engine-pack engine) string uid)
> ((engine-pack engine) #t))))
Ah, I thought the issue was extensibility. SRFI 128 solves this problem by providing invokers as well as accessors, and in hindsight maybe I should have skipped the accessors. The general pattern is that the short names like engine-set and engine-pack take an engine object as the first argument and apply the appropriate procedure from the object to the other arguments. So the lines above become:
(engine-set engine okvs (engine-pack engine string uid) (engine-pack engine) #t).
If you still want accessors, call them engine-setter, engine-packer, etc.
I will work on pre-SRFI for single dispatch and publish in on the
scheme newsgroup to collect more thoughts.
We already have SRFIs 99, 131, 136, 150, and R6RS. I would suggest working on something other than this can of worms.
John Cowan
http://vrici.lojban.org/~cowan xxxxxx@ccil.orgLope de Vega: "It wonders me I can speak at all. Some caitiff rogue
did rudely yerk me on the knob, wherefrom my wits yet wander."
An Englishman: "Ay, belike a filchman to the nab'll leave you
crank for a spell." --Harry Turtledove, Ruled Britannia