
On Fri, Feb 01, 2008 at 07:59:54AM -0500, Brent Yorgey wrote:
On Fri, Feb 1, 2008 at 1:48 AM, Andrea Rossato < mailing_list@istitutocolli.org> wrote: That implementation IS ACTUALLY working and has been in xmc repository
No, it wasn't; there is still the issue of messages sent to non-focused workspaces, which probably wouldn't cause any problems most of the time (so it appeared to work) but could cause subtle bugs. I sent an explanation of this to the list earlier.
I think you may understand that by "working" I mean conceptually sounded and actually implementable. That specific implementation was not working in the way it should because, I've been arguing, it exposed the lack of composability and the lack of expressiveness of the LayoutClass, due to the methods' types that were chosen. I would like to stress the relationship between a method's type and the expressiveness of a class. As I pointed out in my "adventures in types", David provided us with a great tool when he hacked the modifier class. Still that class was not expressive enough to implement AvoidStruts (from ManageDocks), because modifyLayout was not provided. And so, at that time, you should implement AvoidStruct as a layout combinator. I believe my implementation is cleaner, because now you can *change* the layout class and all you need to do it's just to port the modifier class. The very same applies the Named. And did you see how many locs there are in Named now? Why do I care about PerWorkspace so much that I'm buzzing everyone about it? Because when I saw it I thought - and still think - that it was a great hack, that showed my how much you can do with the type system. Do you remember when David told you to just push the list in the type? I'm just applying that principle on a regular basis, now. Thanks to you and David... shouldn't we agree? ;) Cheers, Andrea