prop_associative :: SetOf e s => (s -> s -> s) -> s -> s -> s -> Bool
prop_associative op x y z = ((x `op` y) `op` z) `sameAs` (x `op` (y `op` z))
prop_associative :: SetOf e s => (s -> s -> s) -> s -> s -> s -> Bool
prop_associative op x y z = ((x `op` y) `op` z) `sameAs` (x `op` (y `op` z))
prop_associative op x y z = ((x `op` y) `op` z) `sameAs` (x `op` (y `op` z))