anchor.diff:  ; The return value of this function is not defined.
   
   (defun psr-altera-dominio! (psr var dom)
  -	(let ((maxsz (list-length (PSR-listvars psr))) )
  -		(dotimes (i maxsz (PSR-listvars psr))
  -			(if (equal (nth i (PSR-listvars psr)) var) 
  -				(setf (nth i (PSR-listdomains psr)) dom)
  -			)
  -		)
  -	)
  +	(let ((ans NIL)
  +				)
  +				
  +		(setf psr psr)
  +    (setf ans (gethash var hashtabledoms)) 
  +    (setf (nth ans (PSR-listdomains psr)) dom)
  +  )
   )
   
   ; PSR COMPLETO
  
positive.code: ; Returns a list of all restrictions applicable to this variable.
  
  (defun psr-variavel-restricoes (psr key)
      (defparameter *myhashtable* (make-hash-table :test 'equal))
      (let ((maxsz (list-length (PSR-listconstrains psr)))
            (answ3 NIL) 
       			)
  	
  	(setf answ3 NIL)
         
         (dotimes (i maxsz (PSR-listconstrains psr))
              (if (not
              			(equal
              				(member key
              								(restricao-listvars
              									(nth i (PSR-listconstrains psr)))
              									:test 'equal)
              				NIL
              			)
              		)
  							(setf answ3 (append answ3 (list (nth i (PSR-listconstrains psr)))))
              
              )
              
              )
  	    answ3
      )
  )
  
  
  
negative.code: 						:listdomains domainsl
  						:listconstrains constrainsl
  						:listvalues valuesl))
  			
  			(dotimes (j maxsz varsl)
  				(dotimes (i maxsz2 constrainsl)
  					(progn
  						(if (not
  									(equal
  										(member (nth j varsl)
  											(restricao-variaveis (nth i constrainsl))
  											:test
  											'equal
  										)
  										NIL
  									)
  								)
  							(setf answ3 (append answ3 (list (nth i constrainsl))))
  						)
  					)
  				)
  				(setf (gethash (nth j varsl) hashtableconstr) answ3)
  				(setf answ3 NIL)
  			)
  	x					
  	)	
  )
  