
On Tue, Jan 29, 2008 at 05:33:04PM -0500, Brent Yorgey wrote:
On Jan 29, 2008 2:57 PM, Andrea Rossato
wrote: On Tue, Jan 29, 2008 at 08:41:28PM +0100, Andrea Rossato wrote:
Tue Jan 29 20:29:03 CET 2008 Andrea Rossato
* Add a LayoutCombinator class and a CombinedLayout and port PerWorkspace to the new system just to let you know that this will be amended. I'm going to remove the necessity of implementing doFirst (it was needed just to decide which layout description to use)!
Yes, this is a problem with PerWorkspace in particular -- the description method is pure, but the chooser method must be in the X monad to have access to the current stackset, in order to figure out which workspace is current. So in order to get the description method right, the decision of chooser must be cached as part of the data type so that description can show the description for the correct layout. This is what PerWorkspace used to do.
this is REALLY the last one. If you really want it I can give you a: chooseWithState :: lc a -> XState -> X ComboChooser ;) andrea