View patterns + pattern bindings: finnicky about scoping
Assume {-# LANGUAGE ViewPatterns #-}.
This works:
(id -> ()) = ()
This also works:
di :: a -> a
di = \x -> x
where
(di -> ()) = ()
But none of the following work:
{{{ (di -> ()) = () -- Not in scope: di
| di | a -\> a |
|---|---|
| di = \\x -\> x | |
| }}} | |
| `
di :: a -> a
di = \x -> x
(di -> ()) = () -- Not in scope: di ` |
|
| ` (di -> ()) = () -- Not in scope: di where di :: a -> a di = \x -> x ` |
This looks like a bug to me. Is it? And is this in any way related to #4061 (closed)?
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.6.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |