Tests to write:
================
emfServices
	 ? eInvoke(operation, arguments)
	 ? oclIsInState(statespec)
	(LOT1) check return types of EMF services (eClassifiers returns OrderedSet in A3 and Sequence in A4)
sequencesServices
	 ? asBag: order changes
	 ? asSet: order changes
orderedSetsServices
	 ? asBag: order changes
	 ? asSet: order changes
	 intersection(bag)
	 symmetricDifference(s), 

Differences when evaluated in A4:
=================================
orderedSetsServices
	 collections.union(collection): returns nothing[collections -> union(OrderedSet{'a','b','d'}) -> sortedBy(toString())/]

Unsupported in A4:
==================
stringServices
	 replaceFirst
	 strtok
	 substituteFirst
	 tokenizeLine
acceleoServices
	(LOT1) TODO implement getProperties
numericServices
	(LOT1) WIP https://git.eclipse.org/r/#/c/163019/ operations between Real And Integers
emfServices
	 current(element)
	 current(int)
	 eInverse
	 eInverse(filter)
	 eIsProxy
	 eIsSet
	 eSet
	 eUnset
sequencesServices
	 collectNested
	 drop
	 dropRight
	 flatten
	 product
orderedSetsServices
	 collectNested
	 drop
	 dropRight
	 flatten
	 order change: mixed -> union(OrderedSet{'a','b','d'}) => [mixed -> union(OrderedSet{'a','b','d'})/]
	 order change: mixed -> union(OrderedSet{'a','b'}) => [mixed -> union(OrderedSet{'a','b'})/]
	 product
