[Haskell] Pattern guards and algebraic datatypes