anchor.diff:  	(atribuicao (psr-variavel-valor p v))
   	(consistente t)
   	(testes 0))
  -
  -    (psr-altera-dominio! p v (list valor)) ; TODO: ainda e preciso?
  +    (when (and (numberp atribuicao) (not (= atribuicao valor))) (format t "AC: dominio:~a atribuicao:~a valor:~a~%" antigo-dominio atribuicao valor))
  +
       (psr-adiciona-atribuicao! p v valor)
       (setf (values consistente testes) (psr-variavel-consistente-p p v))
   
  -    (if atribuicao (psr-adiciona-atribuicao! p v atribuicao) (psr-remove-atribuicao! p v))
  -    (psr-altera-dominio! p v antigo-dominio) ; TODO: ainda e preceiso?
  +    (when (null atribuicao) (psr-remove-atribuicao! p v))
       (values consistente testes)))
   
   
  
positive.code: 	(atribuicao2 (psr-variavel-valor p v2))
  	(consistente t)
  	(testes 0))
  
      (psr-altera-dominio! p v1 (list valor1)) ; TODO
      (psr-altera-dominio! p v2 (list valor2)) ; TODO
      (psr-adiciona-atribuicao! p v1 valor1)
      (psr-adiciona-atribuicao! p v2 valor2)
      (dolist (r (psr-variavel-restricoes p v1))
  
negative.code: ;;; psr-variavel-dominio: PSR x variavel -> dominio
  (defun psr-variavel-dominio (p v)
    "Devolve o dominio associado a uma variavel."
    (if (psr-variavel-atribuida-p p v)
        (list (psr-variavel-valor p v))
        (nth-value 0 (gethash v (psr-hash-d p)))))
  
  
  (defun psr-variavel-atribuida-p (p v)
    "Devolve booleano que indica se a variavel esta ou nao atribuida."
    (psr-variavel-valor p v))
  
  
  ;;; psr-variavel-restricoes: PSR x variavel -> lista restricoes
  