Hello, Isn't using unsafePerformIO to create toplevel variables/channels/whatever considered okay by the docs? https://hackage.haskell.org/package/stm-2.4.4/docs/Control-Concurrent-STM-TChan.html Best regards, Marcin Mrotek