From 3310565c512605a71d52f44c4fe645c7ae92786d Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Thu, 25 Nov 2010 21:02:40 +0000 Subject: [PATCH] Derived Eq instance for Chan --- Control/Concurrent/Chan.hs | 4 ++++ 1 file changed, 4 insertions(+) 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 -- 1.7.10.4