Use QuickCheck properties to test the implementation