
16 Dec
2010
16 Dec
'10
11:24 a.m.
On Mon, Dec 13, 2010 at 9:30 PM, Brent Yorgey
Hi all,
Today I wanted this function
strongLocal :: (MonadReader r1 m1, MonadReader r2 m2) => (r2 -> r1) -> m1 a -> m2 a
Of course, after staring at this type for ten seconds I realized that it cannot be implemented. But I wondered whether anyone has any pointers to anything related, or if anyone has good ideas for a reasonable interface that would allow this.
Here's a draft by Bruno Oliveira and me on manipulating the monad stack. The examples in Section 4.3 on p.12-13 are related: http://users.ugent.be/~tschrijv/Research/papers/virtual_monad_stack.pdfhttp://users.ugent.be/%7Etschrijv/Research/papers/virtual_monad_stack.pdf