/// <summary> /// Gets the interpretation of the k'th argument /// </summary> public IComparable this[int k] { get { if (k < 0 || k >= this.arguments.Count) { throw new InvalidOperationException("Invalid argument index: " + k); } try { return(CompoundValue.InterpretTerm(this.Arguments[k])); } catch (ArgumentException) { return(this.Arguments[k]); } } }