That's a bit hard to read, isn't it? (return . f) is a common idiom (or antipattern?) which is better solved by using fmap. hlint will tell you this. For example:
fmap ("Hello, " ++) getLine >>= putStrLn
This isn't necessarily better either, I'd write this using do-notation.
I understood every bit of that code, I just think it's ugly and hard to read and there are better ways to get the same done.
I understood every bit of that code, I just think it's ugly and hard to read and there are better ways to get the same done.