This is the mail archive of the mailing list for the Guile project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Trouble understanding define (!)

Marius Vollmer writes:

   Eric Moore <> writes:

   > This strikes me as a fundamental issue, that we need some *general*
   > way to resolve namespace conflicts in modules, at least to the extent
   > of some simple means of getting a reference to the object bound to a
   > particular name in a particular module.

   Yes, of course.  We need renaming imports, for example.  Your
   suggestion of having the importer of modules be in control to a very
   large extent sounds good.

   Actually, merging of generic functions might turn out to be a often
   wanted thing, and we might want to provide a convenient syntax to
   request it.  But I don't want this generic merging to happen _without_
   this explicit request from the user.

I like Eric's arrangement very much.  But perhaps we can satisfy
Mikael's desire as well - that some generic functions with common
names should be transparently merged without requiring an explicit
user request.  We could do this by

- making the "merge" / "name conflict" handler a generic

- using a special metaclass for all the generic functions that should
  be transparently merged, e.g.

  (define-generic length #:metaclass <mergeable-length-generics>)

- writing a method for the name conflict handler that is specialized
  to this metaclass, and which merges the generic functions.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]