AnyDocsAnd [ AnyDocsOr [] , AnyDocsCommands Nothing [ CommandDoc { commandDocArgument = "top" , commandDocHelp = "command without subcommands" , commandDocs = AnyDocsSingle ConfDoc { confDocKeys = ( "name" :| [] , AnyOfSchema (NullSchema :| [ StringSchema ]) ) :| [] , confDocDefault = Nothing , confDocExamples = [ "john" ] , confDocHelp = 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 [] } ] ] } ] ]