anchor.diff:    
   (defcunion can_address
     (tp (:struct TP)))
  -  
  +
  +;; struct sockaddr_can {
  +;;     sa_family_t can_family;
  +;;     int         can_ifindex;
  +;;     union {
  +;; 	/* transport protocol class address info (e.g. ISOTP) */
  +;; 	struct { canid_t rx_id, tx_id; } tp;
  +
  +;; 	/* reserved for future CAN protocols address information */
  +;;     } can_addr;
  +;; };
  +
   (defcstruct sockaddr-can
     (can_family sa_family_t)
     (can_ifindex :int)
  
positive.code: (defctype canid_t :uint32) 
  (defctype sa_family_t :uint16)
  
  (defcstruct can-frame
    (can_id canid_t)
    (can_dlc :uint8)
  
negative.code:   (fd :int32)
    (addr :pointer)
    (len :pointer))
  
  (defun socket-peer (fd)
    (with-foreign-objects ((addr :uint32 +sockaddr-storage+)
                           (len :uint32))
  