
Adam Vogt [2010.05.11 1308 -0400]:
* On Tuesday, May 11 2010, Ivan Lazar Miljenovic wrote:
Norbert Zeh
writes: One way to "fix" this would be to expect everyone running darcs xmonad to use the latest version of containers, but I'm not sure that's reasonable. Another alternative I see is to use CPP to include home-brewed versions of filter and breakl directly in GroupNavigation if the detected GHC version is < 6.12. Any suggestions from the people with authority (Don, Spencer, Adam, ...) as to what the preferred solution is?
The source of filter seems to be straightforward; maybe just copy it directly and not worry about CPPing?
-- | /O(n)/. The 'filter' function takes a predicate @p@ and a sequence -- @xs@ and returns a sequence of those elements which satisfy the -- predicate. filter :: (a -> Bool) -> Seq a -> Seq a filter p = foldl (\ xs x -> if p x then xs |> x else xs) empty
Right, so we could substitute the definitions when the the containers version that cabal specifies is too low (see attached ugly patch).
containers-0.3.0.0 should build with older GHCs. It would be much easier to manage if we could just require a newer containers: maintaining those macros is a fair amount of work. Is that allowed, or is it too great a concern that this adds one more dependency to fetch for users with older GHCs?
Indeed, requiring the newer containers is the cleanest solution, but your last question is exactly the concern I had about this solution. Don, Spencer: any opinion on this one? N.