You use forAlltogether with listOf(which generates lists) and listOf1(which generates non-empty lists).
Examples
quickCheck $ forAll (listOf $ listOf1 arbitrary) $ myProp
-- more verbose alternative to make things clear
nonEmptyString :: Gen String
nonEmptyString = listOf1 arbitrary
quickCheck $ forAll (listOf nonEmptyString) $ myProp
source
share