[xmonad] Re: A New Solution to Removing the GHC Dependency

Braden Shepherdson Braden.Shepherdson at gmail.com
Tue Jul 22 09:23:15 EDT 2008

Gwern raised a point on #xmonad that is the thorn in this idea: Template 
Haskell. The ability to execute arbitrary Haskell code at compile time 
makes it hard to trust code arriving over the net.

Gwern shot down several ideas for overcoming this, but the final one 
seems to work. I don't know much about TH, but it needs to be turned on 
via either a command-line switch (which won't be present, clearly) or a 
{-# LANGUAGE ... #-} or other pragma inside the xmonad.hs file. 
Unfortunately there are numerous ways to active the flag:
{-# LANGUAGE TemplateHaskell #-}
{-# GHC_OPTIONS -XTemplateHaskell #-}
and probably a dozen more and more esoteric ways.

But, there is no need I can see for any {-# ... #-} pragmas at all in 
xmonad.hs files. Some people's configs on the wiki use it, but 
apparently only for things like -Wall or -fno-warn-missing-signatures, 
which are hardly essential.

Even if, for some reason, one's config did require some extension, it 
seems justified for the web interface to disallow it. If your config is 
that exotic, you'll have to build it yourself.

Is there some obscure other way to turn on TH without a {-# ? Or would 
ensuring that the config doesn't have any {-# in block that out completely?

Braden Shepherdson

More information about the xmonad mailing list