anchor.diff:      (values consistente falhou)))
   
   (defun fapix-atribuicoes-consistentes-p (f ipix1 cor1 ipix2 cor2)
  -  ""
  +  "Recebe um `fapix', dois indices de pixs e duas cores. Testa se a atribuicao da cor1 ao pix1 e da 
  +cor2 ao pix2 e consistente com as restricoes associadas a ambos os pix (testa as restricoes de forma
  + sequencial - primeiro as do pix1 e depois as do pix2). Retorna o mesmo que `fapix-testa-restricoes'
  +."
     (let ((atribuicao1 (fapix-pix-cor f ipix1))
   	(atribuicao2 (fapix-pix-cor f ipix2))
   	(consistente t))
  
positive.code: 							       (<= brancos (- a-volta-len pix)))))))
  
  (defun fapix-ipixs-nao-atribuidos (f)
    "Devolve lista de ipixs nao atribuidos."
    (fapix-natribuidos f))
  
  (defun fapix-pix-cor (f ipix)
    "Devolve a cor (atribuicao) de um pix ou nil caso nao tenha atribuicao."
    (aref (fapix-atribuicao f) ipix))
  
  (defun fapix-pix-dominio (f ipix)
    "Devolve o dominio associado a um pix."
    (let ((cor (fapix-pix-cor f ipix)))
      (if cor
  	(list cor)
  	(aref (fapix-dominio f) ipix))))
  
  (defun fapix-pix-restricoes (f ipix)
    "Devolve uma lista com todas as restricoes aplicaveis a uma variavel."
    (aref (fapix-restricoes f) ipix))
  
  (defun fapix-adiciona-atribuicao! (f ipix cor)
    ""
    (setf (aref (fapix-atribuicao f) ipix) cor))
  
  (defun fapix-remove-atribuicao! (f ipix)
    ""
    (fapix-adiciona-atribuicao! f ipix nil))
  
  (defun fapix-altera-dominio! (f ipix d)
    ""
    (setf (aref (fapix-dominio-len f) (length (fapix-pix-dominio f ipix)))
  	(remove ipix (aref (fapix-dominio-len f) (length (fapix-pix-dominio f ipix)))))
    (setf (aref (fapix-dominio f) ipix) d)
    (push ipix (aref (fapix-dominio-len f) (length d))))
  
  (defun fapix-completo-p (f)
    ""
    (null (fapix-ipixs-nao-atribuidos f)))
  
  (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."
    (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."
    (fapix-testa-restricoes f (fapix-restricoes f)))
  
  (defun fapix-pix-consistente-p (f ipix)
    "Testa as restricoes associadas ao 'ipix'."
    (fapix-testa-restricoes f (fapix-pix-restricoes f ipix)))
  
  (defun fapix-atribuicao-consistente-p (f ipix cor)
    ""
    (let ((atribuicao (fapix-pix-cor f ipix))
  	(consistente t)
  	(falhou nil))
  
negative.code:     (values consistente 0)))
  
  (defun fapix-conta-cores (f ipixs)
    "Recebe um `fapix' e uma lista de indices de pixs. Retorna dois valores: quantos pixs brancos e 
  pretos ha na lista."
    (let ((brancos 0)
  	(pretos 0))
  
  