[xmonad] darcs patch: Replace custom forever_ with library equivalent

Gwern Branwen gwern0 at gmail.com
Thu Mar 25 09:32:19 EDT 2010


On Mon, Mar 22, 2010 at 4:28 PM, Gwern Branwen <gwern0 at gmail.com> wrote:
> On Fri, Jan 16, 2009 at 3:38 PM, Daniel Schoepe <asgaroth_ at gmx.de> wrote:
>> Replaced a custom forever implementation in Main.hsc by the equivalent
>> from the standard libraries. I guess it was legacy code, since forever
>> wasn't in Control.Monad in ghc 6.6 as far as I know.
>>
>> Wed Jan 14 22:55:56 CET 2009  Daniel Schoepe <asgaroth_ at gmx.de>
>>  * Replaced custom forever_ by library function
>
>
> hunk ./XMonad/Main.hsc 146
>             userCode $ startupHook initxmc
>
>             -- main loop, for all you HOF/recursion fans out there.
> -            forever_ $ prehandle =<< io (nextEvent dpy e >> getEvent e)
> +            forever $ prehandle =<< io (nextEvent dpy e >> getEvent e)
>
>     return ()
>       where
> hunk ./XMonad/Main.hsc 150
> -        forever_ a = a >> forever_ a
> -
>         -- if the event gives us the position of the pointer, set mousePosition
>         prehandle e = let mouse = do guard (ev_event_type e `elem` evs)
>                                      return (fromIntegral (ev_x_root e)
>
> --------------------
>
> This patch still applies to core.
>
> I think it ought to be applied. Besides the general goodness of not
> rolling our own and duplicating libraries, the chief objection was
> people might not be using GHC 6.8 or newer.
>
> But that was more than a year ago, and even Debian stable is using 6.8.2:
> - http://packages.debian.org/search?keywords=ghc6
> - http://packages.debian.org/lenny/ghc6
>
> And I strongly suspect that we already broke GHC 6.6 compatibility in
> several many ways.
>
> So there's no downside to applying this, and only upside.

Thoughts?

-- 
gwern


More information about the xmonad mailing list