AnyDocsAnd [ AnyDocsOr [ AnyDocsSingle (Just SetDoc { setDocTryArgument = False , setDocTrySwitch = False , setDocTryOption = True , setDocDasheds = [ DashedLong ('c' :| "onfig-file") ] , setDocEnvVars = Just ("CONFIG_FILE" :| []) , setDocConfKeys = Nothing , setDocDefault = Nothing , setDocExamples = [] , setDocMetavar = Just "FILE_PATH" , setDocHelp = Just "Path to the configuration file" }) , AnyDocsSingle Nothing ] , AnyDocsCommands Nothing [ CommandDoc { commandDocArgument = "top" , commandDocHelp = "command without subcommands" , commandDocs = AnyDocsSingle (Just SetDoc { setDocTryArgument = False , setDocTrySwitch = False , setDocTryOption = True , setDocDasheds = [ DashedLong ('n' :| "ame") ] , setDocEnvVars = Just ("NAME" :| []) , setDocConfKeys = Just (( "name" :| [] , AnyOfSchema (NullSchema :| [ StringSchema ]) ) :| []) , setDocDefault = Nothing , setDocExamples = [ "john" ] , setDocMetavar = Just "NAME" , setDocHelp = Just "name" }) } , CommandDoc { commandDocArgument = "sub" , commandDocHelp = "command with subcommands" , commandDocs = AnyDocsAnd [ AnyDocsCommands Nothing [ CommandDoc { commandDocArgument = "a" , commandDocHelp = "A" , commandDocs = AnyDocsSingle Nothing } , CommandDoc { commandDocArgument = "b" , commandDocHelp = "B" , commandDocs = AnyDocsSingle Nothing } ] , AnyDocsCommands (Just "c") [ CommandDoc { commandDocArgument = "c" , commandDocHelp = "C" , commandDocs = AnyDocsSingle Nothing } , CommandDoc { commandDocArgument = "d" , commandDocHelp = "D" , commandDocs = AnyDocsSingle Nothing } ] ] } ] ]