λ> abs (minBound :: Int) >= 0
False

λ> quickCheck $ \(x :: Int) -> abs x >= 0
+++ OK, passed 100 tests.

λ> smallCheck 100 $ \(x :: Int) -> abs x >= 0
Completed 201 tests without failure.

λ> check $ property $ do {x <- forAll $ Hedgehog.Gen.int Hedgehog.Range.linearBounded; assert $ abs x >= 0}
✓ <interactive> passed 100 tests.
True

HOW?

Functional Café

functional.cafe is an instance for people interested in functional programming and languages.