I have been attempting to translate something I did using UUAG into monadic code. It involved inherited, synthesized, and chained attributes. It has been said that such attributes correspond to the Reader, Writer, and State monads, respectively [1]. The former and latter are straightforward, but I&#39;m somehow missing the correlation between the Writer monad and synthesized attributes. I couldn&#39;t figure out the appropriate combination of tell/listen/pass/censor to do what I was doing with a synthesized Map. I eventually gave up and passed the synthesized values along with the monadic result. Has anybody done this before?<br>

<br>Regards,<br>Sean<br><br>[1] <a href="http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue4/Why_Attribute_Grammars_Matter">http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue4/Why_Attribute_Grammars_Matter</a><br>