Make Positive and NonNegatve live up to their names
Make Positive and NonNegatve live up to their names

The modifiers Positive and NonNegative can produce negative values for data types where abs(minBound) == minBound
This patch adds a suchThat test which fixes the problem.

srhb/quickcheck,nh2/quickcheck,beni55/quickcheck,soenkehahn/quickcheck,Warbo/quickcheck