import System.Concurrency

-- Test that put/get works for multiple values.
main : IO ()
main =
  do c <- makeChannel
     t <- fork $ ignore (for [0..2] $ \n => channelPut c n)
     v0 <- channelGet c
     v1 <- channelGet c
     v2 <- channelGet c
     threadWait t
     if v0 == 0 && v1 == 1 && v2 == 2
        then putStrLn "Success!"
        else putStrLn "At least one value changed in transmission."

