package edu.ucsd.arcum.interpreter.ast.expressions; import java.util.List; import edu.ucsd.arcum.exceptions.SourceLocation; import edu.ucsd.arcum.interpreter.ast.TraitSignature; import edu.ucsd.arcum.interpreter.query.EntityType; import edu.ucsd.arcum.interpreter.query.IEntityLookup; import edu.ucsd.arcum.interpreter.satisfier.BindingMap; import edu.ucsd.arcum.interpreter.satisfier.BindingsSet; public interface IFunction { String getName(); BindingsSet evaluate(List<Object> args, IEntityLookup entityLookup, BindingMap theta, boolean matchingMode, SourceLocation location); List<EntityType> checkArgs(SourceLocation location, List<TraitSignature> tupleSets, int numGiven); }