4 ms·
lurker14, you're shadow banned. He/she said: That's a special case, because RWS already exists (Reader, Writer, and State all commute), and wraps IO easily. L
by mynameisme 13y ago
lurker14, you're shadow banned. He/she said:
That's a special case, because RWS already exists (Reader, Writer, and State all commute), and wraps IO easily.
Light overview of the issue: http://ro-che.info/articles/2012-01-02-composing-monads.html http://ro-che.info/articles/2012-01-02-composing-monads.html
It's the other cases that get head-desk-banging. This paper is great, but shows what a high mental tax you pay to get highly-principled programs:
http://www.grabmueller.de/martin/www/pub/Transformers.en.htm.. http://www.grabmueller.de/martin/www/pub/Transformers.en.htm....
At the end of the day, most people on most projects seem to prefer sacrificing some formal specification (and some actual correctness) for getting code running for the common case.
Related reddit conversation:
http://reddit.com/r/haskell/comments/rd2t5/i_love_rwst_r_w_s.. http://reddit.com/r/haskell/comments/rd2t5/i_love_rwst_r_w_s....