QuickCheck implementations for common types