smallcheck: test your Haskell code by exhaustively checking its properties