Is there a general function to count list elements. I'm trying this

count :: a -> [a] -> Int
count x ys = length (filter (== x) ys)

with this error upon loading

=============

[michael@localhost ~]$ ghci count
GHCi, version 6.10.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main             ( count.hs, interpreted )

count.hs:2:29:
    Could not deduce (Eq a) from the context ()
      arising from a use of `==' at count.hs:2:29-32
    Possible fix:
      add (Eq a) to the context of the type signature for `count'
    In the first argument of `filter', namely `(== x)'
    In the first argument of `length', namely `(filter (== x) ys)'
    In the expression: length (filter (== x) ys)
Failed, modules loaded: none.
Prelude>

=============

Not sure what it's trying to tell me other than I need an (Eq a) somewhere.

Michael