We can also pattern match on the result of a real expression, not just the input. For that, we write: \begin{haskellcode} f :: Int -> Bool f x = case x - 2 of 2 -> True 5 -> True y -> False \end{haskellcode} This allows more powerful pattern matching, especially when we define our own data structures.