Implements the decorator pattern for clojure protocols.