From: Bas van Dijk Date: Thu, 25 Nov 2010 21:02:40 +0000 (+0000) Subject: Derived Eq instance for Chan X-Git-Url: http://git.megacz.com/?p=ghc-base.git;a=commitdiff_plain;h=3310565c512605a71d52f44c4fe645c7ae92786d Derived Eq instance for Chan --- diff --git a/Control/Concurrent/Chan.hs b/Control/Concurrent/Chan.hs index dfc46c3..e06e0cb 100644 --- a/Control/Concurrent/Chan.hs +++ b/Control/Concurrent/Chan.hs @@ -46,6 +46,7 @@ import Data.Typeable data Chan a = Chan (MVar (Stream a)) (MVar (Stream a)) + deriving Eq INSTANCE_TYPEABLE1(Chan,chanTc,"Chan") @@ -93,6 +94,9 @@ readChan (Chan readVar _) = do -- either channel from then on will be available from both. Hence this creates -- a kind of broadcast channel, where data written by anyone is seen by -- everyone else. +-- +-- (Note that a duplicated channel is not equal to its original. +-- So: @fmap (c /=) $ dupChan c@ returns @True@ for all @c@.) dupChan :: Chan a -> IO (Chan a) dupChan (Chan _ writeVar) = do hole <- readMVar writeVar