Edit 13 June:I have made a new and improved version here.Original QuestionThis is a very rudimentary lolcats translator (it only works on the phrase Can I have a cheeseburger) in Haskell. This is my first ever attempt at Haskell (or any functional programming language). I am sure that my code is absolutely atrocious (the documentation was dismal) but it works.Teh Codezimport Data.Stringsmain = do    putStrLn Enter your text to translate    inputText <- getLine    let capsText = strToUpper inputText    let a = strReplace HAVE HAS capsText    let b = strReplace CAN I I CAN a    let c = strReplace CHEESEBURGER CHEEZBURGER b    let d = strReplace  A    c    putStrLn (d)    getLine
I can has(kell) cheezburger?
beginner;strings;haskell
It is good practice in Haskell to separate the functional code from the IO. In this case, you could (and therefore should) define a lolcat :: String -> String function.  Be sure to put a type declaration on all functions  you didn't write one for your main.Defining variables a, b, c, and d is overkill. I would write this as a composition of functions.lolcat :: String -> Stringlolcat = strReplace  A    .         strReplace CHEESEBURGER CHEEZBURGER .         strReplace CAN I I CAN .         strReplace HAVE HAS .         strToUpper