On Wed, Jul 24, 2019 at 07:22:45PM +0200, Marco Maggi wrote: > Mh. If I understand correctly this is to avoid collisions for the > record printers, and stuff like that.
It is to avoid collisions for all accessors and predicates. If I define a record type X of 2 slots in module A, and in module B, I define a record type also called X of 1 slot, then "X?" would return #t for both records. And if I want to access the second slot of the record in module A, but pass in an X of module B (which has only one slot), this will cause an unsafe memory access. That's because we can't safely check first if the record is of the correct type. > If I define my own record-type > constructor, and I want to use the built-in record printers facilities: > is CHICKEN expecting me to qualify the name with the module? The > symbols I want to use are expected to be unique... No, you can use unqualified symbols. We still do that in core itself too, for SRFI-4 vectors and for ports and so on. But this is really low-level stuff, and there's usually a better way. What exactly are you trying to accomplish? Cheers, Peter
signature.asc
Description: PGP signature
_______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users