-- |
-- Module:          Acme.Missiles
-- License:         Public domain
-- Portability:     non-portable
--
-- The 'launchMissiles' action, as mentioned in:
--
--   * /Beautiful concurrency/, by Simon Peyton Jones, to appear in
--     \"Beautiful code\", ed Greg Wilson, O'Reilly 2007.
--     <http://research.microsoft.com/en-us/um/people/simonpj/papers/stm/index.htm#beautiful>

module Acme.Missiles (
    launchMissiles
) where

import Control.Concurrent (forkIO, threadDelay)
import Control.Monad (void)

-- | Cause serious international side-effects.
launchMissiles :: IO ()
launchMissiles =
    void $ forkIO $ do
        threadDelay 1000000
        putStrLn "Nuclear launch detected."