1foo :: Int -> Int 2foo x = case x of x -> x 3 4foo :: IO () 5foo = case [1] of [_] -> "singleton"; _ -> "not singleton" 6foo = case [1] of { [] -> foo; _ -> bar } `finally` baz 7