module Test where{ -- Including data because of `|` masking data Foo = Foo | Bar | Baz; test = case foo of{ a | b, c -> d; a | b, c -> d}; test = case a, b of{ c, d | e -> case e of{ f | true -> bar | false -> baz} | f -> g}; test a | false = case false of{ true | a > 12 -> true} | otherwise = true; test = case a of {foo | foo \a -> a -> true}; test = a `case _ of {x | unit # \_ -> true, true -> const}` b; test = case a of{ 12 | do {that; that }-> this | otherwise -> this}; test a b = [ case _ of{ 12 | case a, b of{ _, 42 -> b; _, 12 -> false}, b -> true | case a, b of{ _, 42 -> b; _, 12 -> false}, b -> true}, false ]; test a | case a, b of{ _, 42 -> b; _, 12 -> false}, b = true | case a, b of{ _, 42 -> b; _, 12 -> false}, b = true}