AnyDocsAnd [ AnyDocsOr [ AnyDocsSingle (Just OptDoc { optDocTryArgument = False , optDocTrySwitch = False , optDocTryOption = True , optDocDasheds = [ DashedLong ('c' :| "onfig-file") ] , optDocDefault = Nothing , optDocExamples = [] , optDocMetavar = Just "FILE_PATH" , optDocHelp = Just "Path to the configuration file" }) ] , AnyDocsCommands Nothing [ CommandDoc { commandDocArgument = "top" , commandDocHelp = "command without subcommands" , commandDocs = AnyDocsSingle (Just OptDoc { optDocTryArgument = False , optDocTrySwitch = False , optDocTryOption = True , optDocDasheds = [ DashedLong ('n' :| "ame") ] , optDocDefault = Nothing , optDocExamples = [ "john" ] , optDocMetavar = Just "NAME" , optDocHelp = Just "name" }) } , CommandDoc { commandDocArgument = "sub" , commandDocHelp = "command with subcommands" , commandDocs = AnyDocsAnd [ AnyDocsCommands Nothing [ CommandDoc { commandDocArgument = "a" , commandDocHelp = "A" , commandDocs = AnyDocsAnd [] } , CommandDoc { commandDocArgument = "b" , commandDocHelp = "B" , commandDocs = AnyDocsAnd [] } ] , AnyDocsCommands (Just "c") [ CommandDoc { commandDocArgument = "c" , commandDocHelp = "C" , commandDocs = AnyDocsAnd [] } , CommandDoc { commandDocArgument = "d" , commandDocHelp = "D" , commandDocs = AnyDocsAnd [] } ] ] } ] ]