Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

bang patterns with infix ops
``` $ ghci -fbang-patterns -- Ok Prelude> let at a !b = False in at 1 2 False Prelude> let (.!.) a !b = False in 1 .!. 2 False -- ~ patterns are ok Prelude> let a `at` ~b = False in at 1 2 False Prelude> let a .!. ~b = False in 1 .!. 2 False Prelude> let ~a .!. b = False in 1 .!. 2 False -- Parse error if we combine bang patterns with infix decls: Prelude> let a .!. !b = False in 1 .!. 2 <interactive>:1:10: parse error on input `!' Prelude> let a `at` !b = False in at 1 2 <interactive>:1:11: parse error on input `!' Prelude> let !a .!. b = False in 1 .!. 2 <interactive>:1:5: Parse error in pattern ``` So looks like ops and infix declarations are missing a case for bang patterns. -- Don <details><summary>Trac metadata</summary> | Trac field | Value | | ---------------------- | ----------------- | | Version | 6.6 | | Type | Bug | | TypeOfFailure | OtherFailure | | Priority | normal | | Resolution | Unresolved | | Component | Compiler (Parser) | | Test case | | | Differential revisions | | | BlockedBy | | | Related | | | Blocking | | | CC | | | Operating system | Unknown | | Architecture | Unknown | </details> <!-- {"blocked_by":[],"summary":"Bang pattern parsing with infix ops","status":"New","operating_system":"Unknown","component":"Compiler (Parser)","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"6.6","keywords":["bang","patterns"],"differentials":[],"test_case":"","architecture":"Unknown","cc":[""],"type":"Bug","description":"{{{\r\n $ ghci -fbang-patterns\r\n\r\n-- Ok\r\n\r\n Prelude> let at a !b = False in at 1 2\r\n False\r\n\r\n Prelude> let (.!.) a !b = False in 1 .!. 2\r\n False\r\n\r\n-- ~ patterns are ok\r\n\r\n Prelude> let a `at` ~b = False in at 1 2\r\n False\r\n\r\n Prelude> let a .!. ~b = False in 1 .!. 2\r\n False\r\n\r\n Prelude> let ~a .!. b = False in 1 .!. 2\r\n False\r\n\r\n-- Parse error if we combine bang patterns with infix decls:\r\n\r\n Prelude> let a .!. !b = False in 1 .!. 2\r\n <interactive>:1:10: parse error on input `!'\r\n\r\n Prelude> let a `at` !b = False in at 1 2\r\n <interactive>:1:11: parse error on input `!'\r\n\r\n Prelude> let !a .!. b = False in 1 .!. 2\r\n <interactive>:1:5: Parse error in pattern\r\n\r\n}}}\r\n\r\nSo looks like ops and infix declarations are missing a case for bang patterns.\r\n\r\n-- Don","type_of_failure":"OtherFailure","blocking":[]} -->
issue