I see both . and $ used to get rid of parentheses. putStrLn (show (length xs)) can apparently be written as putStrLn $ show $ length xs or as putStrLn . show . length $ xs, but my attempt putStrLn . show . length xs does not compile.
What does each operator actually do, and how do I know which one to reach for?




