Prelude> let sH' x = case x of { [] -> Nothing ; (y:_) -> y } Prelude> :type sH' sH :: [Maybe a] -> Maybe a Prelude> :type [1,2,3] [1,2,3] :: Num t => [t] Prelude> sH' [1,2,3] :1:9: No instance for (Num (Maybe a0)) arising from the literal `3' Possible fix: add an instance declaration for (Num (Maybe a0)) In the expression: 3 In the first argument of `sH', namely `[1, 2, 3]' In the expression: sH [1, 2, 3] Prelude> let sH x = case x of { [] -> Nothing ; (y:_) -> Just y } Prelude> :type sH sH :: [a] -> Maybe a