anchor.diff:  	    for key being the hash-keys in dict using (hash-value value)
   	    collect (tuple key value)) ))
     
  -(defmethod encode ((dict hash-table))
  +(defmethod encode ((dict hash-table) &key &allow-other-keys)
     (encode (translate-complex-type dict)))
   
   
  -(defmethod encode (object)
  +(defmethod encode (object &key &allow-other-keys)
     (cleric:encode object :version-tag t))
  +
  +
  +(defmethod encode :around (object &key berp-header)
  +  (let ((bytes (call-next-method object :berp-header nil)))
  +    (if berp-header
  +	(concatenate 'vector (cleric::uint32-to-bytes (length bytes)) bytes)
  +	bytes)))
   
   
   (deftype bert-translatable ()
  
positive.code: 
  (defgeneric translate-complex-type (object)
    (:documentation "Translates tuples with the 'bert' tag to corresponding Lisp objects and vice versa."))
  
  
  (defclass bert-time ()
  
negative.code:   (with-slots (source options) regex
      (tuple '|bert| '|regex| (string-to-binary source) options)))
  
  (defmethod encode ((regex bert-regex) &key &allow-other-keys)
    (encode (translate-complex-type regex)))
  
  
  