bang patterns on pattern synonyms? (left vs right hand sides)
I'm trying to define my own fancy strict maybe types, and so i've written some pattern synonyms to wrap them up.
imagine my surprise when i find i can write bang patterns on the *right* hand side, but not the left hand!
data MyMaybe a = JustC a | NothingC
pattern MyJust :: a -> MyMaybe a
-- pattern MyJust !a = JustC a -- this fails
pattern MyJust a = JustC !a -- this is fine
is this deliberate or a leakage of how desugaring works?
Trac metadata
Trac field | Value |
---|---|
Version | 8.2.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |