In article <[EMAIL PROTECTED]>, Andrew J Bromage <[EMAIL PROTECTED]> wrote:
> comain :: OI a -> () > comain w > = coeval (w .>> show (a,b) =>> stdPutStrLn) > where > a = coeval (w .>> () =>> stdGetChar) > b = coeval (w .>> () =>> stdGetChar) > > Even though a and b are identical, they return different values. I see > two possibilities: Either my intuition is way off, or the OI comonad > breaks referential transparency. So is Kieburtz smoking crack, or are we writing OI-style programs incorrectly? One possibility is that comonads are useful for some things, but not for doing IO actions safely. -- Ashley Yakeley, Seattle WA _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe