#4061: Implement mutually recursive view patterns
---------------------------------+------------------------------------------
    Reporter:  batterseapower    |       Owner:              
        Type:  feature request   |      Status:  new         
    Priority:  normal            |   Component:  Compiler    
     Version:  6.13              |    Keywords:              
          Os:  Unknown/Multiple  |    Testcase:              
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown
---------------------------------+------------------------------------------
 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.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4061>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to