{-# LANGUAGE Haskell2010 #-}
{-# LANGUAGE NoTraditionalRecordSyntax, NoDoAndIfThenElse, NoMultiWayIf, NoLambdaCase, NoNumericUnderscores, MagicHash #-}
{-# OPTIONS -Werror=missing-space-after-bang #-}

module T16270 where

c = do
	if c then
		False
	else
		True

f = id do { 1 }
g = id \x -> x

data Num a => D a

data Pair a b = Pair { fst :: a, snd :: b }
t = p { fst = 1, snd = True }

z :: forall a. ()
z = if True; then (); else ();

data G a where

multiWayIf !i = (a, b)
  where
    a = if | i -> True
           | otherwise -> False
    b = if | i -> False
           | otherwise -> True

w = \case _ : _ -> True
          _     -> False

n = 123_456

s = "hello ωorld"#   -- note the omega

lam = \ -> 0

-- a fatal error.
k = let

-- not reported, as the previous one was fatal.
k = let
