<br><div class="gmail_quote">On Thu, Jan 31, 2008 at 2:42 PM, Spencer Janssen &lt;<a href="mailto:sjanssen@cse.unl.edu">sjanssen@cse.unl.edu</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Wed, Jan 30, 2008 at 07:29:58PM -0500, Brent Yorgey wrote:<br>
</div><div class="Ih2E3d">&gt; &nbsp; 1. PerWorkspace is an inelegant hack with several icky problems:<br>
<br>
</div>Agreed. &nbsp;It is approaching the limits of xmonad&#39;s layout design. &nbsp;However, I<br>
think we can accomplish PerWorkspace behavior without changing too much.<br>
<br>
\begin{code}<br>
data PerWS = PerWS { selected :: Maybe Layout<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , choices &nbsp;:: Map WorkspaceId Layout<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , default &nbsp;:: Layout }<br>
\end{code}<br>
</blockquote><div>&nbsp;</div><div>So, I took a crack at implementing (something like) this today.&nbsp; The problem I ran into is that (Layout a) is not an instance of Read, so PerWorkspace cannot derive Read either.&nbsp; Is there any way around this?&nbsp; Or do I have to go back to caching a (Maybe Bool) and using that to decide on which of two layouts to use, instead of directly caching a (Maybe (Layout a))?<br>
&nbsp;<br>Ideas?<br><br>-Brent<br></div></div>