class_docstr: Base class for kinds.
  
  Kind of the object represents the mathematical classification that
  the entity falls into. It is expected that functions and classes
  recognize and filter the argument by its kind.
  
  Kind of every object must be carefully selected so that it shows the
  intention of design. Expressions may have different kind according
  to the kind of its arguments. For example, arguments of ``Add``
  must have common kind since addition is group operator, and the
  resulting ``Add()`` has the same kind.
  
  For the performance, each kind is as broad as possible and is not
  based on set theory. For example, ``NumberKind`` includes not only
  complex number but expression containing ``S.Infinity`` or ``S.NaN``
  which are not strictly number.
  
  Kind may have arguments as parameter. For example, ``MatrixKind()``
  may be constructed with one element which represents the kind of its
  elements.
  
  ``Kind`` behaves in singleton-like fashion. Same signature will
  return the same object.
class_docstr_tok: ["Base","class","for","kinds",".","Kind","of","the","object","represents","the","mathematical","classification","that","the","entity","falls","into",".","It","is","expected","that","functions","and","classes","recognize","and","filter","the","argument","by","its","kind",".","Kind","of","every","object","must","be","carefully","selected","so","that","it","shows","the","intention","of","design",".","Expressions","may","have","different","kind","according","to","the","kind","of","its","arguments",".","For","example",",","arguments","of","``","Add","``","must","have","common","kind","since","addition","is","group","operator",",","and","the","resulting","``","Add","(",")","``","has","the","same","kind",".","For","the","performance",",","each","kind","is","as","broad","as","possible","and","is","not","based","on","set","theory",".","For","example",",","``","NumberKind","``","includes","not","only","complex","number","but","expression","containing","``","S.Infinity","``","or","``","S.NaN","``","which","are","not","strictly","number",".","Kind","may","have","arguments","as","parameter",".","For","example",",","``","MatrixKind","(",")","``","may","be","constructed","with","one","element","which","represents","the","kind","of","its","elements",".","``","Kind","``","behaves","in","singleton-like","fashion",".","Same","signature","will","return","the","same","object","."]
code: def __new__(cls, *args):
      if args in cls._inst:
          inst = cls._inst[args]
      else:
          inst = super().__new__(cls)
          cls._inst[args] = inst
      return inst
  
imports: from collections import defaultdict
  from .cache import cacheit
  from sympy.multipledispatch.dispatcher import Dispatcher, ambiguity_warn, ambiguity_register_error_ignore_dup, str_signature, RaiseNotImplementedError
label_desc: Use image node_id 1 for calling the Kind obj's underlying member method code with example usage: obj.__new__(cls) and returns: inst