types for message and user ID (+QuickCheck support)