Не совсем уверен, что происходит в этой проверке строк, но, возможно, это то, что вам нужно.
checkPigLatin :: String -> String
checkPigLatin [] = "Empty string"
checkPigLatin (x:xs)
| check = "This is Pig Latin"
| otherwise = "Not Pig Latin"
where check = and [ x `elem` "aeiouAEIOU"
, '-' `elem` xs
, snd ( break ('a' == ) xs ) == "a"
, snd (break ('a' == ) xs) == "y"
]
И
pisya> checkPigLatin "checkPigLatin"
"Not Pig Latin"
it :: String