// Path: src/com/infdot/analysis/solver/DataflowExpression.java
// public interface DataflowExpression<V> {
// 	/**
// 	 * Evaluates expression using the given variable values.
// 	 */
// 	V eval(V[] values);
// 	
// 	/**
// 	 * Helper to collect all variables,
// 	 */
// 	void collectVariables(Set<Integer> variables);
// }


import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.infdot.analysis.solver.DataflowExpression;
package com.infdot.analysis.solver.lattice.map;



public class EmptyMapOperation<K, V> implements DataflowExpression<Map<K, V>> {

	@Override
	public Map<K, V> eval(Map<K, V>[] values) {
		return new HashMap<K, V>();
	}

	@Override
	public void collectVariables(Set<Integer> variables) {}

// Path: src/com/infdot/analysis/solver/DataflowExpression.java
// public interface DataflowExpression<V> {
// 	/**
// 	 * Evaluates expression using the given variable values.
// 	 */
// 	V eval(V[] values);
// 	
// 	/**
// 	 * Helper to collect all variables,
// 	 */
// 	void collectVariables(Set<Integer> variables);
// }


// Path: src/com/infdot/analysis/solver/lattice/map/EmptyMapOperation.java
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.infdot.analysis.solver.DataflowExpression;

package com.infdot.analysis.solver.lattice.map;



public class EmptyMapOperation<K, V> implements DataflowExpression<Map<K, V>> {

	@Override
	public Map<K, V> eval(Map<K, V>[] values) {
		return new HashMap<K, V>();
	}

	@Override
	public void collectVariables(Set<Integer> variables) {}

	@Override