class_docstr: This is the type for argmax and argmin in Sempre. The type signature is <d,<d,<#1,<<d,#1>,#1>>>>.
  Example: (argmax (number 1) (number 1) (fb:row.row.league fb:cell.usl_a_league) fb:row.row.index)
  meaning, of the subset of rows where league == usl_a_league, find the row with the maximum index.
code: def substitute_any_type(self, basic_types):
      if self.second.second.first != ANY_TYPE:
          return [self]
      return [
          ArgExtremeType(basic_type, inner_function_type)
          for basic_type in basic_types
          for inner_function_type in set([NUMBER_TYPE, DATE_TYPE])
      ]
  
imports: from __future__ import absolute_import
  from nltk.sem.logic import Type, BasicType, ANY_TYPE, ComplexType
  from allennlp.semparse.type_declarations.type_declaration import ComplexType, HigherOrderType
  from allennlp.semparse.type_declarations.type_declaration import PlaceholderType, NamedBasicType
  from allennlp.semparse.type_declarations.type_declaration import UnaryOpType, BinaryOpType
label_desc: Use image node_id 4 for calling the ArgExtremeType obj's underlying member method code with example usage: obj.substitute_any_type(basic_types) and returns: unknown, list