anchor.diff:  		return FALSE
   	var/datum/chemical_reaction/selected_reaction = possible_reactions[1]
   	//select the reaction with the most extreme temperature requirements
  -	for(var/_reaction in possible_reactions)
  -		var/datum/chemical_reaction/competitor = _reaction
  +	for(var/datum/chemical_reaction/competitor as anything in possible_reactions)
   		if(selected_reaction.is_cold_recipe)
   			if(competitor.required_temp <= selected_reaction.required_temp)
   				selected_reaction = competitor
  
positive.code:  */
  /datum/reagents/proc/has_reagent(reagent, amount = -1, needs_metabolizing = FALSE)
  	var/list/cached_reagents = reagent_list
  	for(var/_reagent in cached_reagents)
  		var/datum/reagent/R = _reagent
  		if (R.type == reagent)
  			if(!amount)
  				if(needs_metabolizing && !R.metabolizing)
  					return FALSE
  				return R
  			else
  				if(round(R.volume, CHEMICAL_QUANTISATION_LEVEL) >= amount)
  					if(needs_metabolizing && !R.metabolizing)
  						return FALSE
  					return R
  	return FALSE
  
  
  
negative.code: 		return FALSE
  
  	var/list/cached_reagents = reagent_list
  	for(var/datum/reagent/cached_reagent as anything in cached_reagents)
  		if(cached_reagent.type == reagent)
  			//clamp the removal amount to be between current reagent amount
  			//and zero, to prevent removing more than the holder has stored
  			amount = clamp(amount, 0, cached_reagent.volume)
  			cached_reagent.volume -= amount
  			update_total()
  			if(!safety)//So it does not handle reactions when it need not to
  				handle_reactions()
  			SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, QDELING(cached_reagent) ? reagent : cached_reagent, amount)
  
  			return TRUE
  	return FALSE
  