# protocol A [[protocol]] defines a set of method signatures. Every Clojure method implements a protocol signature - [[deftype]] (mutable fields) - [[defrecord]] (immutable fields, map interface) - [[extend-type]] {{ https://i.imgur.com/6vmi6Z0.jpg?500 }}