def values_map(flags=nil)
		raise ":also_foreign makes sense only when :deep is used" if flags.include?(:also_foreign) && !flags.include?(:deep)
		if flags.include?(:deep)
			collect_values_with_count_subtree(flags.include?(:also_foreign)?(:also_foreign):nil)
		else
			collect_values_with_count
		end
	end
def values_map(flags=nil)
		raise ":also_foreign makes sense only when :deep is used" if flags.include?(:also_foreign) && !flags.include?(:deep)
		if flags.include?(:deep)
			collect_values_with_count_subtree(flags.include?(:also_foreign)?(:also_foreign):nil)
		else
			collect_values_with_count
		end
	end
All the values considering the node,
 and the direct and indirect children (if :deep is contained in flags).
 In that case the presence of :also_foreign determine if also embedded
 ASTs are considrered