anchor.diff:       (loop for (name armies-dist) on (getf list :armies) by #'cddr do
              (loop for (territory-key armies) on armies-dist by #'cddr
                    for territory = (territory game territory-key) do
  -                 (setf (owner territory) (player game name))
  -                 (setf (armies territory) armies)))
  +                 (setf (%owner territory) (player game name))
  +                 (setf (%armies territory) armies)))
        (when state
          (reset-movable-armies game)
          (switch (game-fsm game) state)
          (when turn-player
            (loop until (eq (turn-player game) turn-player) do (rotate-turn game)))
  -       (when pending-armies (setf (slot-value game 'pending-armies) pending-armies)))
  +       (when pending-armies (setf (%pending-armies game) pending-armies)))
        ; TODO: signal error on uninitialized territories if playing
        game))
   
  
positive.code: 
  (defgeneric head-player (game)
    (:method ((game game))
     (car (players-round game))))
  
  (defgeneric turn-player (game)
    (:method ((game game))
     (car (slot-value game 'turn-player))))
  
  (defgeneric pass-head (game)
    (:method ((game game))
     (pop (players-round game))
     (head-player game)))
  
  (defgeneric rotate-turn (game)
    (:method ((game game))
     (pop (slot-value game 'turn-player))
     (eq (turn-player game) (head-player game))))
  
  (defgeneric pass-turn (game)
  
negative.code:        (error "Los territorios deben ser divisibles entre los jugadores"))
       (loop
         with territories = (shuffle (territory-keys game))
         for player in (%players-round game)
         for territory in territories do
         (setf (%owner (territory game territory)) player)
         (setf (%armies (territory game territory)) 1)))))
  
  (defgeneric claim (game territory)
    (:method ((game game) territory-key)
     (let ((territory (territory game territory-key)))
       (when (owner territory)
         (error "El territorio ya tiene dueño"))
       (setf (%owner territory) (turn-player game))
       (setf (%armies territory) 1))))
  
  (defgeneric reset-movable-armies (game)
    (:method ((game game))
     (loop for territory being the hash-values in (territories game) do
           (setf (%movable-armies territory) (armies territory)))))
  
  (defgeneric move-armies (game from to amount)
    (:method ((game game) origin-key destination-key amount)
  