Pattern synonyms bind variables out of scope
Wasn't sure what to call this ticket:
{-# Language PatternSynonyms #-}
pattern XInstrProxy :: (Bool -> Bool) -> a
pattern XInstrProxy not <- _
This works fine, is it intended? It came as some surprise to me when I was renaming type variables only to find it still working even though I hadn't changed the variable in the ViewPattern
import Data.Tagged
pattern XInstrProxy proxy <- ((\(Proxy::Proxy descr) -> Proxy::Proxy (XInstr descr)) -> ty)
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | mpickering |
Operating system | |
Architecture |