class_docstr: A coordinate symbol/base scalar associated wrt a Reference Frame.
  
  Ideally, users should not instantiate this class. Instances of
  this class must only be accessed through the corresponding frame
  as 'frame[index]'.
  
  CoordinateSyms having the same frame and index parameters are equal
  (even though they may be instantiated separately).
  
  Parameters
  ==========
  
  name : string
      The display name of the CoordinateSym
  
  frame : ReferenceFrame
      The reference frame this base scalar belongs to
  
  index : 0, 1 or 2
      The index of the dimension denoted by this coordinate variable
  
  Examples
  ========
  
  >>> from sympy.physics.vector import ReferenceFrame, CoordinateSym
  >>> A = ReferenceFrame('A')
  >>> A[1]
  A_y
  >>> type(A[0])
  <class 'sympy.physics.vector.frame.CoordinateSym'>
  >>> a_y = CoordinateSym('a_y', A, 1)
  >>> a_y == A[1]
  True
code: def __new__(cls, name, frame, index):
      # We can't use the cached Symbol.__new__ because this class depends on
      # frame and index, which are not passed to Symbol.__xnew__.
      assumptions = {}
      super()._sanitize(assumptions, cls)
      obj = super().__xnew__(cls, name, **assumptions)
      _check_frame(frame)
      if index not in range(0, 3):
          raise ValueError("Invalid index specified")
      obj._id = (frame, index)
      return obj
  
imports: from sympy import diff, expand, sin, cos, sympify, eye, zeros, ImmutableMatrix, MatrixBase
  from sympy.core.symbol import Symbol
  from sympy.simplify.trigsimp import trigsimp
  from sympy.physics.vector.vector import Vector, _check_vector
  from sympy.utilities.misc import translate
  from warnings import warn
label_desc: Use image node_id 1 for calling the CoordinateSym obj's underlying member method code with example usage: obj.__new__(cls, name, frame, index) and returns: obj