diff --git a/Application/CLI.hs b/Application/CLI.hs
--- a/Application/CLI.hs
+++ b/Application/CLI.hs
@@ -18,8 +18,9 @@
 --   instance CLI MyCommand where
 --      name _ = "cmd"
 --      desc _ = "just echo the given arguments"
---      options _ = [ ]
---      action _ _ opts = mapM_ putStrLn opts
+--      options _ = [ OptHelp [] (Just "string") "the message to print" ]
+--      action _ _ =
+--          withStr "string" $ \str -> exectute $ putStrLn str
 -- @
 --
 -- And to create you application, you need 2 functions (initialize, with and defaultMain).
@@ -59,6 +60,7 @@
     , withParameterStr
     , withOptionalParameterStr
     , withFlag
+    , execute
     ) where
 
 import Application.CLI.Class
@@ -96,7 +98,8 @@
     options _  = [ OptHelp [] (Just "command") "print the help message for a specific command"
                  ]
     action  _ ctx =
-        withOptionalStr $ \mcommand _ -> do
+        withOptionalStr $ \mcommand ->
+        execute $ do
             case mcommand of
                 Nothing -> printStdHelp
                 Just c  -> printCmdHelp c
@@ -204,6 +207,16 @@
     case break (flip elem flags) l of
         (xs1, [])    -> f False xs1
         (xs1, _:xs2) -> f True  (xs1 ++ xs2)
+
+-- | This function makes the use of the other function easier
+-- and also provide a verification that there is no "unused function".
+-- If there is unexpected options remaining, the program will stop and an
+-- error message will be printed
+execute :: IO a
+        -> Options
+        -> IO a
+execute f [] = f
+execute _ l  = error $ "this options are not expected: " ++ intercalate " " l
 
 -------------------------------------------------------------------------------
 --                             Default Main                                  --
diff --git a/cli.cabal b/cli.cabal
--- a/cli.cabal
+++ b/cli.cabal
@@ -1,5 +1,5 @@
 Name:                cli
-Version:             0.0.3
+Version:             0.0.4
 Synopsis:            Simple Command Line Interface Library
 Description:
     This package provides a simple Command Line Library
