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

Reply via email to