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
                        }
                    ]
                ]
          }
      ]
  ]