package name.panitz.fun4u.visitor;
import name.panitz.fun4u.tree.App;
import name.panitz.fun4u.tree.CaseExpr;
import name.panitz.fun4u.tree.ConstructorDef;
import name.panitz.fun4u.tree.Definition;
import name.panitz.fun4u.tree.FunctionDef;
import name.panitz.fun4u.tree.IfExp;
import name.panitz.fun4u.tree.IntLiteral;
import name.panitz.fun4u.tree.OpExp;
import name.panitz.fun4u.tree.Pack;
import name.panitz.fun4u.tree.Param;
import name.panitz.fun4u.tree.Program;
import name.panitz.fun4u.tree.Type;
import name.panitz.fun4u.tree.Var;


public interface Visitor {

	void visit(Type type);

	void visit(Param param);

	void visit(IfExp ifExp);

	void visit(App app);

	void visit(OpExp opExp);

	void visit(Var var);

	void visit(IntLiteral intLiteral);

	void visit(FunctionDef functionDef);

	void visit(Program program);

	void visit(CaseExpr caseExpr);

	void visit(Pack pack);

	void visit(ConstructorDef constructorDef);


}
