This first one should return t but isn't doing so, while the other is returning t. They should be the same.
(defvar list '((binds . 'emacs)))
(eq (cdr (assoc 'binds list)) 'emacs) ;; returns nil
(eq 'emacs 'emacs) ;; returns t
(type-of 'emacs) ;; returns symbol
(type-of (cdr (assoc 'binds list))) ;; Returns cons
What is going on here?