I know nothing about Fay, so I don't know why this extra wrapping shouldn't
work for Fay. Fay has an instance for Monad, right?

well when you write haskell code that you'll compile with Fay you can't use typeclasses. So AFAIK no, the "Fay"  that I use in the Fay code doesn't implement the Monad typeclass.

OK, so it seems my Haskell code is OK, and probably my stackoverflow question is legitimate about whether this valid Haskell code can work on Fay. Btw I used stackoverflow because the Fay website states that they use it as a preferred channel for support.

Thank you for the insights!

Emmanuel