Deadlock when using Control.Concurrent.Chan