
On Sat, Nov 17, 2007 at 12:17:27PM -0500, Brent Yorgey wrote:
2. People who know a bit of Haskell and want to get a bit fancier with their configuration, or write some new extensions.
Andrea, it seems that this is the kind of thing you have started putting in Documentation.hs (starting with the section "Writing new extensions"), but I think this should probably go on the wiki instead. The problem is that I think this document, written properly, will be VERY long!
Well, what I have in mind is a brief (really) overview of the xmonad's internal working with reference (links) to the (quite good, I would say) haddock documentation of the code: main (now xmonad), the event handler, the X monad, and the layout type stuff. About the last one, I don't know, maybe I'm just plainly wrong, but after the LayoutClass change, with the 0.4 release, I had the feeling that new modules contributions have decreased - we would need one of those Don's graphs to verify this... I repeat, I may be wrong, but I think that all the type class stuff could be difficult to grasp to the coders who could be contributing code for xmonad. I think that a brief introduction for them could be helpful too. What do you think? Am I wrong with that?
I actually care very much about such a document and have a great vision of what it could be, since I essentially started writing such a document a couple months ago! I started going through the xmonad source in order to understand it, and, encouraged by Don, began writing an 'xmonad commentary'. I already have a bunch of commentary on StackSet, but have put it on hold due to grad school apps, the big changes with 0.5, and so on. Hopefully sometime soon I will have a chance to upload what I have to the wiki so that others can work on it too. My vision for this commentary is that someone who knows some basic Haskell could read it and come away with (a) a much deeper understanding of Haskell and the sorts of techniques that are used; (b) an excitement for Haskell and what it makes possible, with xmonad as a case study; and (c) (last but not least) the ability to contribute new extension modules and so on.
That would be really great I think, and if I had the time I would have started something like this. Please consider the possibility of starting it on the wiki, I could be helping somehow. Cheers, Andrea