content: -- | Example:
  --
  -- @
  -- {-\# LANGUAGE QuasiQuotes \#-}
  -- module Main where
  --
  -- import Control.Monad (when)
  -- import Data.Char (toUpper)
  -- import System.Environment (getArgs)
  -- import System.Console.Docopt
  --
  -- patterns :: Docopt
  -- patterns = [docopt|
  -- docopt-sample version 0.1.0
  --
  -- Usage:
  --   docopt-sample cat \<file\>
  --   docopt-sample echo [--caps] \<string\>
  --
  -- Options:
  --   -c, --caps    Caps-lock the echoed argument
  -- |]
  --
  -- getArgOrExit = getArgOrExitWith patterns
  --
  -- main :: IO ()
  -- main = do
  --   args <- parseArgsOrExit patterns =<< getArgs
  --
  --   when (args \`isPresent\` (command \"cat\")) $ do
  --     file <- args \`getArgOrExit\` (argument \"file\")
  --     putStr =<< readFile file
  --
  --   when (args \`isPresent\` (command \"echo\")) $ do
  --     let charTransform = if args \`isPresent\` (longOption \"caps\")
  --                         then toUpper
  --                         else id
  --     string <- args \`getArgOrExit\` (argument \"string\")
  --     putStrLn $ map charTransform string
  -- @
  module System.Console.Docopt
    (
      module System.Console.Docopt.QQ,
      module System.Console.Docopt.Public
    )
    where
  
  import System.Console.Docopt.QQ
  import System.Console.Docopt.Public
  