diff options
Diffstat (limited to 'testsuite/tests/parser/should_compile/proposal-229e.hs')
-rw-r--r-- | testsuite/tests/parser/should_compile/proposal-229e.hs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/testsuite/tests/parser/should_compile/proposal-229e.hs b/testsuite/tests/parser/should_compile/proposal-229e.hs new file mode 100644 index 0000000000..d7fc35d38e --- /dev/null +++ b/testsuite/tests/parser/should_compile/proposal-229e.hs @@ -0,0 +1,18 @@ +{-# LANGUAGE BangPatterns #-} + +module Proposal229e ((!), f) where + +(!) :: Maybe a -> a -> (a, a) +f :: a -> a + +-- the preceding '}' is not from a comment, +-- so (!) is tight infix (therefore an operator) +Nothing{}!x = (x, x) + +-- the following '{' opens a multi-line comment, +-- so (!) is loose infix (therefore an operator) +Just a !{-comment-}x = (a, x) + +-- the preceding '}' is closing a multi-line comment, +-- so (!) is prefix (therefore a bang pattern) +f{-comment-}!x = x |