私はquickcheck(およびhaskellも)を学んでいます。次のコードがあります:
newtype Urls = FN { unFN :: String } deriving Show
instance Arbitrary Urls where
arbitrary = do protocol <- elements ["http://"]
name <- listOf $ elements ['a'..'z']
domain <- elements [".com",".com.br",".net"]
return (FN (protocol ++ name ++ domain))
私の質問は、listOf が空 (NonEmpty) を返さないようにする方法についてです。これは、生成された一部のデータで {unFN = "http://.net"} のような文字列を受け取るためです。