code: def canonical(self):
          
          if not hasattr(self, '_canonical'):
              self._canonical = conf.lib.clang_getCanonicalCursor(self)
  
          return self._canonical
docs: Return the canonical Cursor corresponding to this Cursor.
  
          The canonical cursor is the cursor which is representative for the
          underlying entity. For example, if you have multiple forward
          declarations for the same class, the canonical cursor for the forward
          declarations will be identical.