<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><div><font face="Calibri,sans-serif">Greetings All,</font></div><div><font face="Calibri,sans-serif"><br></font></div><div><font face="Calibri,sans-serif">While I admire Haskell enormously, as a an intermediate beginner I find it difficult to know what is normal Haskell style for real world programming. On the subject of monad transformers, the paper by Martin Grabümller titled 'Monad Transformers Step by Step' gives an example of an evaluator using monad transformers with the following type:</font></div><div><font face="Calibri,sans-serif"><br></font></div><div><font face="Calibri,sans-serif">type Eval6 α = ReaderT Env (ErrorT String (WriterT [String] (StateT Integer IO))) α</font></div><div><font face="Calibri,sans-serif"><br></font></div><div><font face="Calibri,sans-serif">Is this how normal Haskell is developed and written in practice? I find the type and the function impenetrably dense and difficult to understand. Should I be aspiring to have my functions look and work like this? Of course it depends on what you want to do, but the essence of the question is, does Haskell ultimately end up looking like this for any real programming, beyond textbook list manipulation functions?</font></div></div><div><font face="Calibri,sans-serif"><br></font></div><div><font face="Calibri,sans-serif">Andrew</font></div><div><font face="Calibri,sans-serif"><br></font></div></body></html>