anchor.diff:  ;;; 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)))
  +  (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)."
  -  (let ((d (psr-variavel-dominio p v)))
  -    (if (= 1 (length d)) (first d) nil)))
  +  (nth-value 0 (gethash v (psr-hash-a p))))
   
   
   ;;; psr-variavel-dominio: PSR x variavel -> dominio
  
positive.code: 
  (defun psr-variavel-atribuida-p (p v)
    "Devolve booleano que indica se a variavel esta ou nao atribuida."
    (= (length (psr-variavel-dominio p v)) 1))
  
  
  ;;; psr-variavel-restricoes: PSR x variavel -> lista restricoes
  (defun psr-variavel-restricoes (p v)
    "Devolve uma lista com todas as restricoes aplicaveis a uma variavel."
    (nth-value 0 (gethash v (psr-hash-r p)))) ; TODO: pode ser lento
  
  
  ;;; psr-adiciona-atribuicao!: PSR x variavel x valor -> {}
  (defun psr-adiciona-atribuicao! (p v n)
    ""
    (setf (gethash v (psr-hash-d p)) (list n)))
  
  
  ;;; psr-remove-atribuicao!: PSR x variavel -> {}
  (defun psr-remove-atribuicao! (p v)
    ""
    (setf (gethash v (psr-hash-d p)) nil))
  
  
  ;;; psr-altera-dominio!: PSR x variavel x dominio {}
  
negative.code: ;;; 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))
      (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-remove-atribuicao! p v)
      (psr-altera-dominio! p v antigo-dominio) ; TODO: ainda e preceiso?
      (values consistente testes)))
  
  
  