anchor.diff:  (defun fapix-testa-restricoes (f restricoes)
     "Testa uma lista de restricoes e devolve dois valores. O primeiro, um boleano que indica se todas
     as restricoes se verificam e o segundo indica o numero de testes realizados."
  -  (let ((testes 0))
  -    (dolist (r restricoes (values t testes))
  -      (incf testes)
  -      (when (null (funcall (restricao-fapix-funcao-validacao r) f)) (return (values nil testes))))))
  +  (dolist (r restricoes (values t nil))
  +    (when (null (funcall (restricao-fapix-funcao-validacao r) f))
  +      (return (values nil r)))))
   
   (defun fapix-consistente-p (f)
     "Testa todas as restricoes do fapix."
  
positive.code: 							       #'<))
  
  		  (when dominio
  		    (setf (aref pix-dominio ipix-av) dominio) ; TODO: so dominio? ou tmb atrib?
  		    (push ipix-av (aref dominio-len 1))
  		    (setf (aref pix-dominio-len-p ipix-av) t)))))
  
  
negative.code:   ""
    (let ((atribuicao (fapix-pix-cor f ipix))
  	(consistente t)
  	(falhou nil))
  
      (fapix-adiciona-atribuicao! f ipix cor)
  
      (setf (values consistente falhou) (fapix-pix-consistente-p f ipix))
  
      (if atribuicao (fapix-adiciona-atribuicao! f ipix atribuicao) (fapix-remove-atribuicao! f ipix))
      (values consistente falhou)))
  
  ;; (defun fapix-atribuicoes-consistentes-arco-p (f ipix1 cor1 ipix2 cor2)
  ;;   ""
  ;;   (let ((atribuicao1 (fapix-pix-cor f ipix1))
  ;; 	(atribuicao2 (fapix-pix-cor f ipix2))
  ;; 	(consistente t))
  
  ;;     (fapix-adiciona-atribuicao! f ipix1 cor1)
  ;;     (fapix-adiciona-atribuicao! f ipix2 cor2)
  ;;     (dolist (r (fapix-pix-restricoes f ipix1))
  ;;       (when (find ipix2 (restricao-fapix-ipixs r) :test '=)
  ;; 	(when (null (funcall (restricao-fapix-funcao-validacao r) f))
  ;; 	  (setf consistente nil)
  ;; 	  (return))))
  
  ;;     (if atribuicao1 (fapix-adiciona-atribuicao! f ipix1 atribuicao1) (fapix-remove-atribuicao! f ipix1))
  ;;     (if atribuicao2 (fapix-adiciona-atribuicao! f ipix2 atribuicao2) (fapix-remove-atribuicao! f ipix2))
  ;;     (values consistente testes)))
  
  (defun fapix-atribuicoes-consistentes-p (f ipix1 cor1 ipix2 cor2)
    ""
    (let ((atribuicao1 (fapix-pix-cor f ipix1))
  	(atribuicao2 (fapix-pix-cor f ipix2))
  	(consistente t))
  
      (fapix-adiciona-atribuicao! f ipix1 cor1)
      (fapix-adiciona-atribuicao! f ipix2 cor2)
  
      (block testes
        (when (fapix-testa-restricoes f (fapix-pix-restricoes f ipix1))
  	(when (fapix-testa-restricoes f (fapix-pix-restricoes f ipix2))
  	  (return-from testes)))
        (setf consistente nil))
  
      (if atribuicao1 (fapix-adiciona-atribuicao! f ipix1 atribuicao1) (fapix-remove-atribuicao! f ipix1))
      (if atribuicao2 (fapix-adiciona-atribuicao! f ipix2 atribuicao2) (fapix-remove-atribuicao! f ipix2))
      (values consistente 0)))
  
  (defun fapix-conta-cores (f ipixs)
    ""
  