class_docstr: A ``BasicType`` that also takes the name of the type as an argument to its constructor. Type
  resolution uses the output of ``__str__`` as well, so basic types with different
  representations do not resolve against each other.
  
  Parameters
  ----------
  string_rep : str
      String representation of the type.
class_docstr_tok: ["A","``","BasicType","``","that","also","takes","the","name","of","the","type","as","an","argument","to","its","constructor",".","Type","resolution","uses","the","output","of","``","__str__","``","as","well",",","so","basic","types","with","different","representations","do","not","resolve","against","each","other",".","Parameters","--","--","--","--","--","string_rep",":","str","String","representation","of","the","type","."]
code: def __str__(self):
      # TODO (pradeep): This limits the number of basic types we can have to 26. We may want to
      # change this in the future if we extend to domains where we have more than 26 basic types.
      if self._string_rep == START_SYMBOL:
          return START_SYMBOL
      else:
          return self._string_rep.lower()[0]
  
imports: from __future__ import absolute_import
  from collections import defaultdict
  from nltk.sem.logic import Expression, ApplicationExpression, ConstantExpression, LogicParser, Variable
  from nltk.sem.logic import Type, BasicType, ComplexType, ANY_TYPE
  from allennlp.common.util import START_SYMBOL
label_desc: Use image node_id 2 for calling the NamedBasicType obj's underlying member method code with example usage: obj.__str__() and returns: START_SYMBOL, self