There is special language syntax built-in for this programming pattern[2]
instance Arbitrary Person where arbitrary = do a <- arbitrary f <- arbitrary s <- arbitrary g <- arbGender return (P a f s g) coarbitrary = undefined
[2] Note that do and <- are keywords
do
<-