boolFlagActions :: [(String, BoolFlagAction)]
boolFlagActions = [ ("allmatches", \ss b -> ss {firstMatch=not b})
                  , ("archivesonly", \ss b -> ss {archivesOnly=b,
                                                  searchArchives=b})
                  , ("colorize", \ss b -> ss {colorize=b})
                  , ("debug", \ss b -> ss {debug=b, verbose=b})
                  , ("excludehidden", \ss b -> ss {excludeHidden=b})
                  , ("firstmatch", \ss b -> ss {firstMatch=b})
                  , ("help", \ss b -> ss {printUsage=b})
                  , ("includehidden", \ss b -> ss {excludeHidden=not b})
                  , ("listdirs", \ss b -> ss {listDirs=b})
                  , ("listfiles", \ss b -> ss {listFiles=b})
                  , ("listlines", \ss b -> ss {listLines=b})
                  , ("multilinesearch", \ss b -> ss {multiLineSearch=b})
                  , ("nocolorize", \ss b -> ss {colorize=not b})
                  , ("noprintmatches", \ss b -> ss {printResults=not b})
                  , ("norecursive", \ss b -> ss {recursive=not b})
                  , ("nosearcharchives", \ss b -> ss {searchArchives=not b})
                  , ("printmatches", \ss b -> ss {printResults=b})
                  , ("recursive", \ss b -> ss {recursive=b})
                  , ("searcharchives", \ss b -> ss {searchArchives=b})
                  , ("uniquelines", \ss b -> ss {uniqueLines=b})
                  , ("verbose", \ss b -> ss {verbose=b})
                  , ("version", \ss b -> ss {printVersion=b})
                  ]
boolFlagActions :: [(String, BoolFlagAction)]
boolFlagActions = [ ("allmatches", \ss b -> ss {firstMatch=not b})
                  , ("archivesonly", \ss b -> ss {archivesOnly=b,
                                                  searchArchives=b})
                  , ("colorize", \ss b -> ss {colorize=b})
                  , ("debug", \ss b -> ss {debug=b, verbose=b})
                  , ("excludehidden", \ss b -> ss {excludeHidden=b})
                  , ("firstmatch", \ss b -> ss {firstMatch=b})
                  , ("help", \ss b -> ss {printUsage=b})
                  , ("includehidden", \ss b -> ss {excludeHidden=not b})
                  , ("listdirs", \ss b -> ss {listDirs=b})
                  , ("listfiles", \ss b -> ss {listFiles=b})
                  , ("listlines", \ss b -> ss {listLines=b})
                  , ("multilinesearch", \ss b -> ss {multiLineSearch=b})
                  , ("nocolorize", \ss b -> ss {colorize=not b})
                  , ("noprintmatches", \ss b -> ss {printResults=not b})
                  , ("norecursive", \ss b -> ss {recursive=not b})
                  , ("nosearcharchives", \ss b -> ss {searchArchives=not b})
                  , ("printmatches", \ss b -> ss {printResults=b})
                  , ("recursive", \ss b -> ss {recursive=b})
                  , ("searcharchives", \ss b -> ss {searchArchives=b})
                  , ("uniquelines", \ss b -> ss {uniqueLines=b})
                  , ("verbose", \ss b -> ss {verbose=b})
                  , ("version", \ss b -> ss {printVersion=b})
                  ]
boolFlagActions = [ ("allmatches", \ss b -> ss {firstMatch=not b})
                  , ("archivesonly", \ss b -> ss {archivesOnly=b,
                                                  searchArchives=b})
                  , ("colorize", \ss b -> ss {colorize=b})
                  , ("debug", \ss b -> ss {debug=b, verbose=b})
                  , ("excludehidden", \ss b -> ss {excludeHidden=b})
                  , ("firstmatch", \ss b -> ss {firstMatch=b})
                  , ("help", \ss b -> ss {printUsage=b})
                  , ("includehidden", \ss b -> ss {excludeHidden=not b})
                  , ("listdirs", \ss b -> ss {listDirs=b})
                  , ("listfiles", \ss b -> ss {listFiles=b})
                  , ("listlines", \ss b -> ss {listLines=b})
                  , ("multilinesearch", \ss b -> ss {multiLineSearch=b})
                  , ("nocolorize", \ss b -> ss {colorize=not b})
                  , ("noprintmatches", \ss b -> ss {printResults=not b})
                  , ("norecursive", \ss b -> ss {recursive=not b})
                  , ("nosearcharchives", \ss b -> ss {searchArchives=not b})
                  , ("printmatches", \ss b -> ss {printResults=b})
                  , ("recursive", \ss b -> ss {recursive=b})
                  , ("searcharchives", \ss b -> ss {searchArchives=b})
                  , ("uniquelines", \ss b -> ss {uniqueLines=b})
                  , ("verbose", \ss b -> ss {verbose=b})
                  , ("version", \ss b -> ss {printVersion=b})
                  ]