anchor.diff:  ;;; psr-atribuicao-consistente-p: PSR x variavel x valor -> logico, inteiro
   (defun psr-atribuicao-consistente-p (p v valor)
     ""
  -  (let ((antigo-dominio (psr-variavel-dominio p v)) (consistente t) (testes 0))
  +  (let ((antigo-dominio (psr-variavel-dominio p v))
  +	(consistente t)
  +	(testes 0))
  +    (when (psr-variavel-atribuida-p p v) (print "ERRO!")) ; TODO: apagar isto
  +    (psr-altera-dominio! p v (list valor)) ; TODO: ainda e preciso?
       (psr-adiciona-atribuicao! p v valor)
       (setf (values consistente testes) (psr-variavel-consistente-p p v))
  -    (psr-altera-dominio! p v antigo-dominio)
  +    (psr-remove-atribuicao! p v)
  +    (psr-altera-dominio! p v antigo-dominio) ; TODO: ainda e preceiso?
       (values consistente testes)))
   
   
  
positive.code: 	(antigo-dominio2 (psr-variavel-dominio p v2))
  	(consistente t)
  	(testes 0))
      (psr-adiciona-atribuicao! p v1 valor1)
      (psr-adiciona-atribuicao! p v2 valor2)
      (dolist (r (psr-variavel-restricoes p v1))
  
negative.code: ;;; psr-variaveis-nao-atribuidas: PSR -> lista de variaveis
  (defun psr-variaveis-nao-atribuidas (p)
    "Devolve lista de variaveis nao atribuidas (pela ordem inicial)."
    (loop for v in (psr-variaveis-todas p) when (not (psr-variavel-atribuida-p p v)) collect v))
  
  
  ;;; psr-variavel-valor: PSR x variavel -> objecto
  (defun psr-variavel-valor (p v)
    "Devolve o valor atribuido a variavel (caso nao exista atribuicao devolve nil)."
    (nth-value 0 (gethash v (psr-hash-a p))))
  
  
  ;;; psr-variavel-dominio: PSR x variavel -> dominio
  