Typeclasses provide a way to be generic types (they are groups of types). You can use a typeclass type restriction instead of an explicit type Integer, for example:
myFunc :: Integral a => [a] -> String
myFunc x = if (even (sum x)) then "even" else "odd"
, , [a] String, a - , , Integral. , Integral. , typeclass, .
Integral , (.. ).
, Int Integer Integral, .