Put the record in its own little SRFI (that's what we are doing for timespec), or use an alist instead.

On Thu, Oct 24, 2019 at 3:26 AM Amirouche Boubekki <xxxxxx@gmail.com> wrote:
Le dim. 6 oct. 2019 à 00:41, Amirouche Boubekki
<xxxxxx@gmail.com> a écrit :
>
> Le dim. 6 oct. 2019 à 00:38, Amirouche Boubekki
> <xxxxxx@gmail.com> a écrit :
> >
> > Here the fist paragraph from the SRFI-167 specification about engine:
> >
> > > engine
> >
> > > To allow the user of an okvs abstraction (also known as layer) to easily swap implementations, it must be written in terms of the procedures specified in this section. The engine is a simple record of okvs procedures that must be passed to the constructor of layers. It must be shared between okvs implementations. The okvs library must contain an instance of the engine record exported as engine that is bound to the procedures that it defines.

[...]

> >
> > Based on my knowledge there is an approach to achieve that: Single dispatch.
> >
> > Do you know what would be the Right Thing? Or maybe this is the Right Thing?
> >
> > ref: https://srfi.schemers.org/srfi-167/srfi-167.html
>
> Maybe chibi-scheme generic is the way to go?
>
> ref: http://synthcode.com/scheme/chibi/lib/chibi/generic.html

I will remove the engine record type from the sample implementation
and from the specification.

ref: https://github.com/amirouche/arew-scheme/blob/master/src/arew/srfi/srfi-167/engine.md

There is still time to stop me :)

--
Amirouche ~ https://hyper.dev