import Control.Monad import Control.Applicative isPalindrome :: Eq a => [a] -> Bool isPalindrome xs = xs == reverse xs isPalindrome' :: (Eq a) => [a] -> Bool isPalindrome' = liftM2 (==) id reverse isPalindrome'' :: (Eq a) => [a] -> Bool isPalindrome'' = (==) <*> reverse