module WarmingUp where import Data.Char cap :: [Char] -> [Char] cap xs = map toUpper xs rev :: [Char] -> [Char] rev xs = reverse xs composed :: [Char] -> [Char] composed = cap . rev fmapped :: [Char] -> [Char] fmapped = fmap cap rev tupled :: [Char] -> ([Char], [Char]) tupled = (,) <$> composed <*> fmapped tupled' :: [Char] -> ([Char], [Char]) tupled' = composed >>= (\x -> fmapped >>= (\y -> return (x, y)))