title: Haskell: bound-values in generic functions
body: <p>i want to do something like: </p>
  
  <pre><code>succ' :: (Bounded a, Eq a, Enum a) =&gt; a -&gt; a
  succ' n
  | n == (maxBound :: a) = minBound :: a
  | otherwise = succ n
  </code></pre>
  
  <p>but this does not work. how to solve this?</p>