*indexOf* method is applied to array to search for specified element: elementIndex := array.indexOf(elementValueToSearch); *indexOf* returns the index of the first element of array which value is equal to the value specified as the first argument. Its logic is equivalent to the following code: elementIndex := 0; WHILE (elementIndex < LEN(array)) & (array[elementIndex] # elementValueToSearch) DO INC(elementIndex) END; IF elementIndex = LEN(array) THEN elementIndex := -1 END; That is a lot of code and it cannot be reused in a library (element type can vary). On the other side this operation is used pretty often so it was implemented as [[Eberon|eberon]] extension. *indexOf* can be applied only if elements type can be used in relation operation, i.e. it cannot be applied to array of records or array of arrays.