Round braces are used for grouping, it's necessary to avoid ambiguity since a function can be defined with more than one argument. When using case you don't have this potential ambiguity, so don't need the parentheses. Tuples are more of a special case in the grammar that isn't closely related to this.

safeHead p = case p of
  [] -> Nothing
  x : xs -> Just x

On Friday, October 24, 2014, Rohit Sharma <rohits79@gmail.com> wrote:
All,

I started learning haskell very recently and have a question on the pattern matching style for lists.

In the below snippet i.e. "(x:xs)" why do we went with round braces and not square? I know we are using cons that tells this is not a tuple but would it not make more sense to write something like [x:xs] instead of (x:xs), i thought round braces was used for pair/tuples?

safeHead [] = Nothing
safeHead (x:xs) = Just x

Thanks,
Rohit