Hi how could one implement a function in concurrent haskell that either returns 'a' successfully or due timeout 'b'?