public interface Term { Value eval() throws EvalException; } Term term = ...; Value meaning = term.eval();
Evaluation of a term returns a domain value (normally).