anchor.diff:  
   (defvar *gcm-authorisation-key* nil)
   
  -(deftype provider-type () '(member :gcm :apns))
  +(deftype provider-type () '(member :gcm :apns :apns-dev))
   
   (defclass gcm-registration ()
     ((user         :type string
  
positive.code:       (loop
          for (key provider) in (gcm-keys-for-user user)
          do (log:info "Sending to key = ~s" key)
          do (ecase provider
               (:gcm
                (push-gcm-message user key (st-json:jso "potato_message_type" "message"
                                                        "message_id" message-id
  
negative.code: (defun parse-provider-name (name)
    (string-case:string-case (name)
      ("gcm" :gcm)
      ("apns" :apns)
      ("apns-dev" :apns-dev)))
  
  (defun make-memcached-key-for-gcm-keys (uid)
    (format nil "gcm-~a" (encode-name uid)))
  