anchor.diff:  	(antigo-dominio2 (psr-variavel-dominio 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))
  
positive.code: ;;; psr-variaveis-nao-atribuidas: PSR -> lista de variaveis
  (defun psr-variaveis-nao-atribuidas (p)
    "Devolve lista de variaveis nao atribuidas (pela ordem inicial)."
   (mapcan #'(lambda (v) (when (not(= (length (gethash v (psr-hash-d p))) 1)) (list v))) 
  	      (psr-variaveis-todas p)))
  
  
  ;;; 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)."
    (let ((d (psr-variavel-dominio p v)))
      (if (= 1 (length d)) (first d) nil)))
  
  
  ;;; psr-variavel-dominio: PSR x variavel -> dominio
  
negative.code: 
  (defun psr-conta-valor (p variaveis valor)
    "Devolve o numero de variaveis (do argumento) que tem como valor o 'valor'."
    (count valor variaveis :key #'(lambda (v) (psr-variavel-valor p v)) :test 'eql)) ; TODO: eql vs =
  
  
  ;;; fill-a-pix->psr: array -> PSR
  