1-- |
2-- Module      : Acme.Dont
3-- Copyright   : Gracjan Polak 2009
4-- License     : BSD-style
5-- Maintainer  : Gracjan Polak <gracjanpolak@gmail.com>
6-- Stability   : experimental
7-- Portability : portable
8--
9-- The Acme.Dont module provides the indispensable don't command,
10-- ported from Perl.
11--
12-- For more information see influential documentation:
13-- <http://search.cpan.org/~dconway/Acme-Don-t-1.01/t.pm>
14--
15-- Usage:
16--
17-- > main = don't $ do
18-- >     name <- getLine
19-- >     putStrLn $ "hello " ++ name
20--
21module Acme.Dont where
22
23-- | The Acme.Dont module provides a don't command, which is the
24-- opposite of Haskell's built-in do.  It is used exactly like the do
25-- monadic construct except that, instead of executing the block it
26-- controls, it... well... doesn't.
27--
28-- Regardless of the contents of the block, don't returns ().
29--
30don't :: (Monad m) => m a -> m ()
31don't _action = return ()
32