Mark H Weaver <m...@netris.org> writes:

> Here's an implementation of SRFI-111 Boxes for stable-2.0.
> What do you think?
>
>       Mark

Has it been considered to coalesce the box type with Guile's "variable"
type?  I can see two concrete differences:

* External representation (*not* specified by SRFI-111)

* Variables can be "unbound" (empty), boxes can't

So we could get away with making the box API consist of aliases to a
subset of the variable API and still conform to SRFI-111.

This would eliminate type-disjointness between variables and boxes, make
boxes print with #<variable, make objects exist that are box? but error
when passed to unbox, and eliminate the extra record type.  And as a
more "volatile" point, it would make boxes perform possibly a bit faster
now (direct C implementation, whereas records all have some overhead as
of now AFAIK), but a bit slower in theory given a perfect record-type
implementation (needn't check for boundness during `unbox').

I suppose that's more cons than pros after all?  And very sorry if I'm
bikeshedding, I thought this was worth at least a mention and a quick
survey.

Taylan

Reply via email to