It seems GHC does give a warning at compile-time about it, so you did get it right the first time :-)f ~(x:xs) = x + 2 f ~[] = 42 Then f [] would give a complie error: Irrefutable pattern failed for pattern (x : xs)Sorry, that should be *runtime* error! Chris.