Ticket #4061 (closed feature request: wontfix)
Implement mutually recursive view patterns
Description
I got bit by the fact that mutually recursive view patterns don't work when writing code a bit like this:
{-# LANGUAGE ViewPatterns #-}
module RecursiveViewPatterns where
-- Doesn't work: "Not in scope: 'foo'"
(foo, unzip -> (bars, bazs)) = undefined
(spqr, ($ foo) -> metavariable) = undefined
-- Works fine:
-- (foo, unzip -> (bars, bazs)) = undefined
-- (spqr, mk_metavariable) = undefined
-- metavariable = mk_metavariable foo
(I've started using view patterns very aggressively to eliminate almost every linearly-used binding in my programs!)
I note that the GHC users guide (http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/syntax-extns.html) mentions that this feature is not yet implemented, but the restriction may be lifted in future. Consider this ticket a vote for that change.
Change History
Note: See
TracTickets for help on using
tickets.
