stringServices
	'test'.oclAsType(String)
	'test'.oclIsUndefined()
	'test'.oclIsTypeOf(String)
	'test'.oclIsTypeOf(EPackage)
	'test'.oclIsKindOf(String)
	'test'.oclIsKindOf(EPackage)
	'test' <> 'toto'
	'test' <> 'test'
	'test' = 'toto'
	'test' = 'test'
	'test'.toString()
	'test'.oclAsSet()
	'test'.size()
	'12'.toInteger()
	'1.2'.toReal()
	'test'.toUpper()
	'TEST'.toLower()
	'test'.contains('es')
	'test'.contains('toto')
	'test'.endsWith('st')
	'test'.endsWith('toto')
	'test'.replaceAll('t', 'z')
	'test'.tokenize()
	'  test '.trim()
	'test'.strcmp('test')
	'test'.strstr('es')
	'test'.strstr('toto')
	'test'.concat('test')
	'test'.equalsIgnoreCase('tEsT')
	'test'.equalsIgnoreCase('toto')
	'test'.first(2)
	'test'.isAlpha()
	'test1'.isAlpha()
	'test'.isAlphanum()
	'test1'.isAlphanum()
	'111'.isAlphanum()
	'test'.last(2)
	'test'.lastIndex('a')
	'test'.lastIndex('t')
	'test'.matches('test')
	'test'.prefix('pre')
	'test test'.replace('te', 'ta')
	'test'.startsWith('te')
	'test'.startsWith('toto')
	'test test'.substitute('te', 'ta')
	'test'.substituteAll('t', 'z')
	'test'.substring(2)
	'test'.substring(2,3)
	'test'.toUpperCase()
	'test'.toUpperFirst()
	'TEST'.toLowerCase()
	'TEST'.toLowerFirst()
	'test'.tokenize()
	'test'.at(2)
	'test'.characters()
	'lineOne' + lineSeparator() + 'lineTwo' + lineSeparator() + 'LineThree'.tokenizeLine()->sep(', ')
	'test test'.substituteFirst('te', 'ta')
	'test test'.replaceFirst('te', 'ta')
	'*' + lineSeparator() + '*'
	'a' + 'b'
	'a' + 'b' + 'c'
	'a' + 'test'
	'a' + 'test' + 'c'
	'a' + p.name
	'a' + p.name + 'c'
	'a' + p.name + 'c' + 'test'
acceleoServices
	'\n' + '\t' + '\'' + '\\ ' + '\"' + '"'
	'['
	let var : OclAny = self][var.oclAsType(EPackage).name/][/le
	invoke('misc.MyService','myService(java.lang.Object, java.lang.String)',Sequence{p,'test'})
booleanServices
	true.oclAsType(Boolean)
	true.oclIsUndefined()
	true.oclIsTypeOf(Boolean)
	true.oclIsTypeOf(EPackage)
	true.oclIsKindOf(Boolean)
	true.oclIsKindOf(EPackage)
	true = false
	true = true
	false = true
	false = false
	true <> false
	true <> true
	false <> true
	false <> false
	true.toString()
	true.oclAsSet()
	not true
	not false
	true and false
	true and true
	false and true
	false and false
	true or false
	true or true
	false or true
	false or false
	true xor false
	true xor true
	false xor true
	false xor false
	true implies false
	true implies true
	false implies true
	false implies false
	false._and(true)
	true._and(false)
	false._or(true)
	true._or(false)
	false._implies(true)
	true._implies(false)
	true._not()
	false._not()
	false._xor(true)
	true._xor(false)
	true.toString()
	false.toString()
	(true and false) or true implies (false xor true)
numericServices
	var2.oclAsType(Integer)
	var2.oclIsUndefined()
	var2.oclIsTypeOf(Integer)
	var2.oclIsTypeOf(EPackage)
	var2.oclIsKindOf(Integer)
	var2.oclIsKindOf(EPackage)
	var1 = var2
	var1 = var1
	var1 <> var2
	var1 <> var1
	var2.toString()
	var1 + var2
	var1 - var2
	var2 - var1
	var1 * var2
	var1 / var2
	var2 / var1
	var1 < var2
	var2 < var1
	var1 > var2
	var2 > var1
	var1 <= var1
	var1 <= var2
	var2 <= var1
	var1 >= var1
	var1 >= var2
	var2 >= var1
	var1.abs()
	var2.abs()
	var1.div(var2)
	var2.div(var1)
	var1.floor()
	var2.floor()
	var1.max(var2)
	var2.max(var1)
	var1.min(var2)
	var2.min(var1)
	var1.mod(var2)
	var2.mod(var1)
	var1.round()
	var2.round()
	var1.toString()
	var2.toString()
	1 + (2 - 1)*3 >= 4 + 2
	var1.oclAsSet()
	var1.oclAsType(Real)
	var1.oclIsUndefined()
	var1.oclIsTypeOf(Real)
	var1.oclIsTypeOf(EPackage)
	var1.oclIsKindOf(Real)
	var1.oclIsKindOf(EPackage)
	var1 <> var1
	var1 <> var2
	var1 = var1
	var1 = var2
	var1.toString()
	var1 + var2
	var1 - var2
	var2 - var1
	var1 * var2
	var2 / var1
	var1 / var2
	var1 < var2
	var2 < var1
	var1 > var2
	var2 > var1
	var1 <= var1
	var1 <= var2
	var2 <= var1
	var1 >= var1
	var1 >= var2
	var2 >= var1
	var1.abs()
	var2.abs()
	var1.floor()
	var2.floor()
	var1.max(var2)
	var2.max(var1)
	var1.min(var2)
	var2.min(var1)
	var1.round()
	var2.round()
	var1.toString()
	var2.toString()
	3.0 / 1.5
	0.5 * 2.0
	1.5 + (2.2 - 1.0)*3.2 >= 4.6 / 2.1
	var1.oclAsSet()
emfServices
	'test'.oclAsType(String)
	c.oclIsUndefined()
	c.oclIsTypeOf(EClass)
	c.oclIsTypeOf(EPackage)
	c.oclIsKindOf(EClass)
	c.oclIsKindOf(EPackage)
	c.oclAsType(EClass).name
	c.toString().startsWith('org.eclipse.emf.ecore.impl.EClassImpl@')
	c.siblings(EClass)->collect(name)
	c.precedingSiblings(EClass)->collect(name)
	c.precedingSiblings()->collect(name)
	c.followingSiblings(EClass)->collect(name)
	c.followingSiblings()->collect(name)
	c.eResource().toString().startsWith('org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl@')
	c.eGet('name')
	c.eGet(c.eClass().getEStructuralFeature('name'))
	c.eGet(c.eClass().getEStructuralFeature('name'), true)
	c.eContainmentFeature().name
	c.eContainingFeature().name
	c.eContainer().oclIsTypeOf(EPackage)
	c.eContainer(EPackage).name
	c.eClass().name
	c.ancestors(EPackage)->collect(name)
	c.ancestors()->collect(name)
	c.eAllContents(EAttribute)->collect(name)
	c <> c.eContainer()
	c <> c
	c = c.eContainer()
	c = c
	c.eAllContents()->collect(name)
	c.siblings()->collect(name)
	c.eContents()->collect(name)
	c.eCrossReferences()->collect(name)
	c.oclAsSet().name
sequencesServices
	mixed.toString()
	strings.toString()
	reals.toString()
	integers.toString()
	booleans.toString()
	collections.toString()
	mixed.oclIsTypeOf(String)
	strings.oclIsTypeOf(String)
	reals.oclIsTypeOf(Real)
	integers.oclIsTypeOf(Integer)
	booleans.oclIsTypeOf(Boolean)
	eClasses.oclIsTypeOf(EClass)
	eClasses.oclIsTypeOf(EClassifier)
	mixed.oclIsKindOf(String)
	strings.oclIsKindOf(String)
	reals.oclIsKindOf(Real)
	integers.oclIsKindOf(Integer)
	booleans.oclIsKindOf(Boolean)
	eClasses.oclIsKindOf(EObject)
	eClasses.oclIsKindOf(EClass)
	eClasses.oclIsKindOf(EClassifier)
	mixed -> last()
	strings -> last()
	reals -> last()
	integers -> last()
	booleans -> last()
	eClasses -> last().name
	collections -> last()
	mixed -> collect(t | t.toString())
	strings -> collect(t | t.toString())
	integers -> collect(t | t.toString())
	booleans -> collect(t | t.toString())
	reals -> collect(t | t.toString())
	eClasses -> collect(t | t.name)
	collections -> collect(t | t.toString())
	mixed -> size()
	strings -> size()
	integers -> size()
	booleans -> size()
	reals -> size()
	eClasses -> size()
	collections -> size()
	mixed -> notEmpty()
	strings -> notEmpty()
	integers -> notEmpty()
	booleans -> notEmpty()
	reals -> notEmpty()
	eClasses -> notEmpty()
	collections -> notEmpty()
	mixed -> isEmpty()
	strings -> isEmpty()
	integers -> isEmpty()
	booleans -> isEmpty()
	reals -> isEmpty()
	eClasses -> isEmpty()
	collections -> isEmpty()
	mixed -> reverse()
	strings -> reverse()
	integers -> reverse()
	booleans -> reverse()
	reals -> reverse()
	eClasses -> reverse() -> collect(name)
	collections -> reverse()
	mixed -> first()
	strings -> first()
	integers -> first()
	booleans -> first()
	reals -> first()
	eClasses -> first().name
	collections -> first()
	mixed -> asSequence()
	strings -> asSequence()
	integers -> asSequence()
	booleans -> asSequence()
	reals -> asSequence()
	eClasses -> asSequence() -> collect(name)
	collections -> asSequence()
	mixed -> asOrderedSet() 
	strings -> asOrderedSet() 
	integers -> asOrderedSet() 
	booleans -> asOrderedSet() 
	reals -> asOrderedSet() 
	eClasses -> asOrderedSet() -> collect(name)
	collections -> asOrderedSet() 
	mixed -> sep(',')
	strings -> sep(',')
	integers -> sep(',')
	booleans -> sep(',')
	reals -> sep(',')
	collections -> sep(',')
	mixed -> sep('{', ',', '}')
	strings -> sep('{', ',', '}')
	integers -> sep('{', ',', '}')
	booleans -> sep('{', ',', '}')
	reals -> sep('{', ',', '}')
	collections -> sep('{', ',', '}')
	mixed -> includesAll(Sequence{'a','b'})
	mixed -> includesAll(Sequence{'a','b','d'})
	strings -> includesAll(Sequence{'a','b'})
	strings -> includesAll(Sequence{'a','b','d'})
	integers -> includesAll(Sequence{1,2})
	integers -> includesAll(Sequence{1,2,4})
	booleans -> includesAll(Sequence{true,false})
	Sequence{false} -> includesAll(Sequence{true,false})
	reals -> includesAll(Sequence{1.2,2.1})
	reals -> includesAll(Sequence{1.2,2.3})
	collections -> includesAll(Sequence{Sequence{'a','b','c'}})
	collections -> includesAll(Sequence{Sequence{'a','b','d'}})
	collections -> includesAll(Sequence{'a','b','d'})
	eClasses -> includesAll(p.eClassifiers)
	Sequence{p.eClassifiers->first()}-> includesAll(p.eClassifiers)
	mixed -> includes('z')
	mixed -> includes('a')
	strings -> includes('z')
	strings -> includes('a')
	integers -> includes(6)
	integers -> includes(2)
	Sequence{true,true} -> includes(false)
	booleans -> includes(false)
	reals -> includes(5.2)
	reals -> includes(1.2)
	eClasses -> includes(p.eClassifiers->first())
	Sequence{p.eClassifiers->first()} -> includes(p.eClassifiers->last())
	collections -> includes(Sequence{'a','b','c'})
	collections -> includes(Sequence{'z','b','c'})
	mixed -> excludesAll(Sequence{'a','b'})
	mixed -> excludesAll(Sequence{'a','b','d'})
	strings -> excludesAll(Sequence{'a','b'})
	strings -> excludesAll(Sequence{'a','b','d'})
	integers -> excludesAll(Sequence{1,2})
	integers -> excludesAll(Sequence{1,2,4})
	booleans -> excludesAll(Sequence{true,false})
	Sequence{false} -> excludesAll(Sequence{true,false})
	reals -> excludesAll(Sequence{1.2,2.1})
	reals -> excludesAll(Sequence{1.2,2.3})
	collections -> excludesAll(Sequence{Sequence{'a','b','c'}})
	collections -> excludesAll(Sequence{Sequence{'a','b','d'}})
	collections -> excludesAll(Sequence{'a','b','d'})
	eClasses -> excludesAll(p.eClassifiers)
	Sequence{p.eClassifiers->first()}-> excludesAll(p.eClassifiers)
	mixed -> excludes('z')
	mixed -> excludes('a')
	strings -> excludes('z')
	strings -> excludes('a')
	integers -> excludes(6)
	integers -> excludes(2)
	Sequence{true} -> excludes(false)
	booleans -> excludes(false)
	reals -> excludes(5.2)
	reals -> excludes(1.2)
	eClasses -> excludes(p.eClassifiers->first())
	Sequence{p.eClassifiers->first()} -> excludes(p.eClassifiers->last())
	collections -> excludes(Sequence{'a','b','c'})
	collections -> excludes(Sequence{'z','b','c'})
	mixed -> union(Sequence{'a','b'})
	mixed -> union(Sequence{'a','b','d'})
	strings -> union(Sequence{'a','b'})
	strings -> union(Sequence{'a','b','d'})
	integers -> union(Sequence{1,2})
	integers -> union(Sequence{1,2,4})
	booleans -> union(Sequence{true,false})
	Sequence{false} -> union(Sequence{true,false})
	reals -> union(Sequence{1.2,2.1})
	reals -> union(Sequence{1.2,2.3})
	collections -> union(Sequence{Sequence{'a','b','c'}})
	collections -> union(Sequence{Sequence{'a','b','d'}})
	collections -> union(Sequence{'a','b','d'})
	eClasses -> union(p.eClassifiers->asSequence()) -> collect(name)
	mixed -> count('z')
	mixed -> count('a')
	strings -> count('z')
	strings -> count('a')
	integers -> count(6)
	integers -> count(2)
	Sequence{true,true} -> count(false)
	booleans -> count(false)
	reals -> count(5.2)
	reals -> count(1.2)
	eClasses -> count(p.eClassifiers->first())
	Sequence{p.eClassifiers->first()} -> count(p.eClassifiers->last())
	collections -> count(Sequence{'a','b','c'})
	collections -> count(Sequence{'z','b','c'})
	mixed -> append('z')
	mixed -> append('a')
	strings -> append('z')
	strings -> append('a')
	integers -> append(6)
	integers -> append(2)
	Sequence{true,true} -> append(false)
	booleans -> append(false)
	reals -> append(5.2)
	reals -> append(1.2)
	eClasses -> append(p.eClassifiers->first()) -> collect(name)
	Sequence{p.eClassifiers->first()} -> append(p.eClassifiers->last()) -> collect(name)
	collections -> append(Sequence{'a','b','c'})
	collections -> append(Sequence{'z','b','c'})
	mixed -> prepend('z')
	mixed -> prepend('a')
	strings -> prepend('z')
	strings -> prepend('a')
	integers -> prepend(6)
	integers -> prepend(2)
	Sequence{true,true} -> prepend(false)
	booleans -> prepend(false)
	reals -> prepend(5.2)
	reals -> prepend(1.2)
	eClasses -> prepend(p.eClassifiers->first()) -> collect(name)
	Sequence{p.eClassifiers->first()} -> prepend(p.eClassifiers->last()) -> collect(name)
	collections -> prepend(Sequence{'a','b','c'})
	collections -> prepend(Sequence{'z','b','c'})
	mixed -> insertAt(1,'z')
	mixed -> insertAt(1,'a')
	strings -> insertAt(1,'z')
	strings -> insertAt(1,'a')
	integers -> insertAt(1,6)
	integers -> insertAt(1,2)
	Sequence{true,true} -> insertAt(1,false)
	booleans -> insertAt(1,false)
	reals -> insertAt(1,5.2)
	reals -> insertAt(1,1.2)
	eClasses -> insertAt(1,p.eClassifiers->first()) -> collect(name)
	Sequence{p.eClassifiers->first()} -> insertAt(1,p.eClassifiers->last()) -> collect(name)
	collections -> insertAt(1,Sequence{'a','b','c'})
	collections -> insertAt(1,Sequence{'z','b','c'})
	mixed -> indexOf('a')
	strings -> indexOf('a')
	integers -> indexOf(2)
	booleans -> indexOf(false)
	reals -> indexOf(1.2)
	eClasses -> indexOf(p.eClassifiers->first())
	collections -> indexOf(Sequence{'a','b','c'})
	mixed -> including('z')
	mixed -> including('a')
	strings -> including('z')
	strings -> including('a')
	integers -> including(6)
	integers -> including(2)
	Sequence{true,true} -> including(false)
	booleans -> including(false)
	reals -> including(5.2)
	reals -> including(1.2)
	eClasses -> including(p.eClassifiers->first()) -> collect(name)
	Sequence{p.eClassifiers->first()} -> including(p.eClassifiers->last()) -> collect(name)
	collections -> including(Sequence{'a','b','c'})
	collections -> including(Sequence{'z','b','c'})
	mixed -> excluding('z')
	mixed -> excluding('a')
	strings -> excluding('z')
	strings -> excluding('a')
	integers -> excluding(6)
	integers -> excluding(2)
	Sequence{true,true} -> excluding(false)
	booleans -> excluding(false)
	reals -> excluding(5.2)
	reals -> excluding(1.2)
	eClasses -> excluding(p.eClassifiers->first()) -> collect(name)
	Sequence{p.eClassifiers->first()} -> excluding(p.eClassifiers->last()) -> collect(name)
	collections -> excluding(Sequence{'a','b','c'})
	collections -> excluding(Sequence{'z','b','c'})
	mixed -> at(1)
	strings -> at(1)
	integers -> at(1)
	booleans -> at(1)
	reals -> at(1)
	eClasses -> at(1).name
	collections -> at(1)
	Sequence{'aaa','bb','ccccc'} -> sortedBy(t | t.size())
	integers -> sortedBy(t | t)
	reals -> sortedBy(t | t)
	booleans -> sortedBy(t | t.toString())
	eClasses -> sortedBy(t | t.name) -> collect(name)
	Sequence{Sequence{'a','b','c'}, Sequence{'a','b'}} -> sortedBy(t | t->size())
	integers -> sum()
	reals -> sum()
	mixed -> exists(t | t = 'b')
	mixed -> exists(t | t = 'z')
	strings -> exists(t | t = 'b')
	strings -> exists(t | t = 'z')
	integers -> exists(t | t = 1)
	integers -> exists(t | t = 4)
	reals -> exists(t | t = 1.2)
	reals -> exists(t | t = 4.2)
	booleans -> exists(t | t = true)
	eClasses -> exists(t | t.name = 'ClasseB')
	collections -> exists(t | t.size() = 3)
	collections -> exists(t | t.size() = 1)
	mixed -> select(t | t = 'b')
	mixed -> select(t | t = 'z')
	strings -> select(t | t = 'b')
	strings -> select(t | t = 'z')
	integers -> select(t | t = 1)
	integers -> select(t | t = 4)
	reals -> select(t | t = 1.2)
	reals -> select(t | t = 4.2)
	booleans -> select(t | t = true)
	eClasses -> select(t | t.name = 'ClasseB') -> collect(name)
	collections -> select(t | t.size() = 3)
	collections -> select(t | t.size() = 1)
	mixed -> reject(t | t = 'b')
	mixed -> reject(t | t = 'z')
	strings -> reject(t | t = 'b')
	strings -> reject(t | t = 'z')
	integers -> reject(t | t = 1)
	integers -> reject(t | t = 4)
	reals -> reject(t | t = 1.2)
	reals -> reject(t | t = 4.2)
	booleans -> reject(t | t = true)
	eClasses -> reject(t | t.name = 'ClasseB') -> collect(name)
	collections -> reject(t | t.size() = 3)
	collections -> reject(t | t.size() = 1)
	mixed -> forAll(t | t = 'b')
	mixed -> forAll(t | t = 'z')
	strings -> forAll(t | t = 'b')
	strings -> forAll(t | t = 'z')
	integers -> forAll(t | t = 1)
	integers -> forAll(t | t = 4)
	reals -> forAll(t | t = 1.2)
	reals -> forAll(t | t = 4.2)
	booleans -> forAll(t | t = true)
	eClasses -> forAll(t | t.name = 'ClasseB')
	collections -> forAll(t | t.size() = 3)
	collections -> forAll(t | t.size() = 1)
	mixed -> any(t | t = 'b')
	mixed -> any(t | t = 'z')
	strings -> any(t | t = 'b')
	strings -> any(t | t = 'z')
	integers -> any(t | t = 1)
	integers -> any(t | t = 4)
	reals -> any(t | t = 1.2)
	reals -> any(t | t = 4.2)
	booleans -> any(t | t = true)
	eClasses -> any(t | t.name = 'ClasseB') -> collect(name)
	collections -> any(t | t.size() = 3)
	collections -> any(t | t.size() = 1)
	mixed -> one(t | t = 'b')
	mixed -> one(t | t = 'z')
	strings -> one(t | t = 'b')
	strings -> one(t | t = 'z')
	integers -> one(t | t = 1)
	integers -> one(t | t = 4)
	reals -> one(t | t = 1.2)
	reals -> one(t | t = 4.2)
	booleans -> one(t | t = true)
	eClasses -> one(t | t.name = 'ClasseB')
	collections -> one(t | t.size() = 3)
	collections -> one(t | t.size() = 1)
	mixed -> isUnique(toString())
	strings -> isUnique(toString())
	integers -> isUnique(toString())
	reals -> isUnique(toString())
	booleans -> isUnique(toString())
	eClasses -> isUnique(toString())
	collections -> isUnique(toString())
	mixed -> oclIsUndefined()
	strings -> oclIsUndefined()
	integers -> oclIsUndefined()
	booleans -> oclIsUndefined()
	reals -> oclIsUndefined()
	eClasses -> oclIsUndefined()
	collections -> oclIsUndefined()
	strings.oclIsUndefined()
	integers.oclIsUndefined()
	booleans.oclIsUndefined()
	reals.oclIsUndefined()
	eClasses.oclIsUndefined()
	collections.oclIsUndefined()
	Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p
	Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size()
	Sequence{p,'test',true,1,2.2} -> filter(String)
	Sequence{p,'test',true,1,2.2} -> filter(Integer)
	Sequence{p,'test',true,1,2.2} -> filter(Boolean)
	Sequence{p,'test',true,1,2.2} -> filter(Real)
	mixed -> subSequence(1,2)
	strings -> subSequence(1,2)
	integers -> subSequence(1,2)
	reals -> subSequence(1,2)
	booleans -> subSequence(1,2)
	eClasses -> subSequence(1,2) -> collect(name)
	collections -> subSequence(1,2)
	eClasses -> filter(EClass) -> closure(e : EClass | e.eSuperTypes->asSet()) -> collect(name)
	mixed -> removeAll(Sequence{'a','b'})
	mixed -> removeAll(Sequence{'a','b','d'})
	strings -> removeAll(Sequence{'a','b'})
	strings -> removeAll(Sequence{'a','b','d'})
	integers -> removeAll(Sequence{1,2})
	integers -> removeAll(Sequence{1,2,4})
	booleans -> removeAll(Sequence{true,false})
	Sequence{false} -> removeAll(Sequence{true,false})
	reals -> removeAll(Sequence{1.2,2.1})
	reals -> removeAll(Sequence{1.2,2.3})
	collections -> removeAll(Sequence{Sequence{'a','b','c'}})
	collections -> removeAll(Sequence{Sequence{'a','b','d'}})
	collections -> removeAll(Sequence{'a','b','d'})
	eClasses -> removeAll(p.eClassifiers->asSequence()) -> collect(name)
	mixed->selectByType(String)
	strings->selectByType(String)
	reals->selectByType(Real)
	integers->selectByType(Integer)
	booleans->selectByType(Boolean)
	eClasses->selectByType(EClass) -> collect(name)
	eClasses->selectByType(EClassifier) -> collect(name)
	mixed->selectByKind(String)
	strings->selectByKind(String)
	reals->selectByKind(Real)
	integers->selectByKind(Integer)
	booleans->selectByKind(Boolean)
	eClasses->selectByKind(EObject) -> collect(name)
	eClasses->selectByKind(EClass) -> collect(name)
	eClasses->selectByKind(EClassifier) -> collect(name)
	mixed -> addAll(Sequence{'a','b'})
	mixed -> addAll(Sequence{'a','b','d'})
	strings -> addAll(Sequence{'a','b'})
	strings -> addAll(Sequence{'a','b','d'})
	integers -> addAll(Sequence{1,2})
	integers -> addAll(Sequence{1,2,4})
	booleans -> addAll(Sequence{true,false})
	Sequence{false} -> addAll(Sequence{true,false})
	reals -> addAll(Sequence{1.2,2.1})
	reals -> addAll(Sequence{1.2,2.3})
	collections -> addAll(Sequence{Sequence{'a','b','c'}})
	collections -> addAll(Sequence{Sequence{'a','b','d'}})
	collections -> addAll(Sequence{'a','b','d'})
	eClasses -> addAll(p.eClassifiers->asSequence()) -> collect(name)
	integers -> startsWith(OrderedSet{1, 2})
	integers -> startsWith(OrderedSet{1, 1})
	integers -> startsWith(OrderedSet{1, 2})
	integers -> startsWith(OrderedSet{1, 1})
	mixed -> indexOfSlice(Sequence{'a','b'})
	strings -> indexOfSlice(Sequence{'a','b'})
	integers -> indexOfSlice(Sequence{1,2})
	booleans -> indexOfSlice(Sequence{true,false})
	reals -> indexOfSlice(Sequence{1.2,2.1})
	eClasses -> indexOfSlice(p.eClassifiers)
	integers -> endsWith(OrderedSet{2, 3})
	integers -> endsWith(OrderedSet{1, 1})
	integers -> endsWith(OrderedSet{2, 3})
	integers -> endsWith(OrderedSet{1, 1})
	strings->dropRight(2)
	reals->dropRight(2)
	integers->dropRight(2)
	booleans->dropRight(2)
	eClasses->dropRight(2) -> collect(name)
	mixed->drop(2)
	strings->drop(2)
	reals->drop(2)
	integers->drop(2)
	booleans->drop(2)
	eClasses->drop(2) -> collect(name)
	mixed -> append('a') -> lastIndexOf('a')
	strings -> append('a') -> lastIndexOf('a')
	integers -> append(2) -> lastIndexOf(2)
	booleans -> append(false) -> lastIndexOf(false)
	reals -> append(1.2) -> lastIndexOf(1.2)
	eClasses -> append(p.eClassifiers->first()) -> lastIndexOf(p.eClassifiers->first())
	collections -> append(Sequence{'a','b','c'}) -> lastIndexOf(Sequence{'a','b','c'})
	mixed -> lastIndexOfSlice(Sequence{'a','b'})
	strings -> lastIndexOfSlice(Sequence{'a','b'})
	integers -> lastIndexOfSlice(Sequence{1,2})
	booleans -> lastIndexOfSlice(Sequence{true,false})
	reals -> lastIndexOfSlice(Sequence{1.2,2.1})
	eClasses -> lastIndexOfSlice(p.eClassifiers)
	mixed.oclAsSet()
	strings.oclAsSet()
	integers.oclAsSet()
	reals.oclAsSet()
	booleans.oclAsSet()
	eClasses.oclAsSet() -> collect(name)
	collections.oclAsSet()
	integers->min()
	reals->max()
orderedSetsServices
	mixed.toString()
	strings.toString()
	reals.toString()
	integers.toString()
	booleans.toString()
	collections.toString()
	mixed.oclIsTypeOf(String)
	strings.oclIsTypeOf(String)
	strings.oclIsTypeOf(String)
	reals.oclIsTypeOf(Real)
	integers.oclIsTypeOf(Integer)
	booleans.oclIsTypeOf(Boolean)
	eClasses.oclIsTypeOf(EClass)
	eClasses.oclIsTypeOf(EClassifier)
	mixed.oclIsKindOf(String)
	strings.oclIsKindOf(String)
	reals.oclIsKindOf(Real)
	integers.oclIsKindOf(Integer)
	booleans.oclIsKindOf(Boolean)
	eClasses.oclIsKindOf(EObject)
	eClasses.oclIsKindOf(EClass)
	eClasses.oclIsKindOf(EClassifier)
	mixed -> last()
	strings -> last()
	reals -> last()
	integers -> last()
	booleans -> last()
	eClasses -> last().name
	collections -> last()
	mixed -> collect(t | t.toString())
	strings -> collect(t | t.toString())
	integers -> collect(t | t.toString())
	booleans -> collect(t | t.toString())
	reals -> collect(t | t.toString())
	eClasses -> collect(t | t.name)
	collections -> collect(t | t.toString())
	mixed -> size()
	strings -> size()
	integers -> size()
	booleans -> size()
	reals -> size()
	eClasses -> size()
	collections -> size()
	mixed -> notEmpty()
	strings -> notEmpty()
	integers -> notEmpty()
	booleans -> notEmpty()
	reals -> notEmpty()
	eClasses -> notEmpty()
	collections -> notEmpty()
	mixed -> isEmpty()
	strings -> isEmpty()
	integers -> isEmpty()
	booleans -> isEmpty()
	reals -> isEmpty()
	eClasses -> isEmpty()
	collections -> isEmpty()
	mixed -> reverse()
	strings -> reverse()
	integers -> reverse()
	booleans -> reverse()
	reals -> reverse()
	eClasses -> reverse() -> collect(name)
	collections -> reverse()
	mixed -> first()
	strings -> first()
	integers -> first()
	booleans -> first()
	reals -> first()
	eClasses -> first().name
	collections -> first()
	mixed -> asSequence()
	strings -> asSequence()
	integers -> asSequence()
	booleans -> asSequence()
	reals -> asSequence()
	eClasses -> asSequence() -> collect(name)
	collections -> asSequence()
	mixed -> asOrderedSet() 
	strings -> asOrderedSet() 
	integers -> asOrderedSet() 
	booleans -> asOrderedSet() 
	reals -> asOrderedSet() 
	eClasses -> asOrderedSet() -> collect(name)
	collections -> asOrderedSet() 
	mixed -> sep(',')
	strings -> sep(',')
	integers -> sep(',')
	booleans -> sep(',')
	reals -> sep(',')
	collections -> sep(',')
	mixed -> sep('{', ',', '}')
	strings -> sep('{', ',', '}')
	integers -> sep('{', ',', '}')
	booleans -> sep('{', ',', '}')
	reals -> sep('{', ',', '}')
	collections -> sep('{', ',', '}')
	mixed -> includesAll(OrderedSet{'a','b'})
	mixed -> includesAll(OrderedSet{'a','b','d'})
	strings -> includesAll(OrderedSet{'a','b'})
	strings -> includesAll(OrderedSet{'a','b','d'})
	integers -> includesAll(OrderedSet{1,2})
	integers -> includesAll(OrderedSet{1,2,4})
	booleans -> includesAll(OrderedSet{true,false})
	OrderedSet{false} -> includesAll(OrderedSet{true,false})
	reals -> includesAll(OrderedSet{1.2,2.1})
	reals -> includesAll(OrderedSet{1.2,2.3})
	collections -> includesAll(OrderedSet{OrderedSet{'a','b','c'}})
	collections -> includesAll(OrderedSet{OrderedSet{'a','b','d'}})
	collections -> includesAll(OrderedSet{'a','b','d'})
	eClasses -> includesAll(p.eClassifiers)
	OrderedSet{p.eClassifiers->first()}-> includesAll(p.eClassifiers)
	mixed -> includes('z')
	mixed -> includes('a')
	strings -> includes('z')
	strings -> includes('a')
	integers -> includes(6)
	integers -> includes(2)
	OrderedSet{true,true} -> includes(false)
	booleans -> includes(false)
	reals -> includes(5.2)
	reals -> includes(1.2)
	eClasses -> includes(p.eClassifiers->first())
	OrderedSet{p.eClassifiers->first()} -> includes(p.eClassifiers->last())
	collections -> includes(OrderedSet{'a','b','c'})
	collections -> includes(OrderedSet{'z','b','c'})
	mixed -> excludesAll(OrderedSet{'a','b'})
	mixed -> excludesAll(OrderedSet{'a','b','d'})
	strings -> excludesAll(OrderedSet{'a','b'})
	strings -> excludesAll(OrderedSet{'a','b','d'})
	integers -> excludesAll(OrderedSet{1,2})
	integers -> excludesAll(OrderedSet{1,2,4})
	booleans -> excludesAll(OrderedSet{true,false})
	OrderedSet{false} -> excludesAll(OrderedSet{true,false})
	reals -> excludesAll(OrderedSet{1.2,2.1})
	reals -> excludesAll(OrderedSet{1.2,2.3})
	collections -> excludesAll(OrderedSet{OrderedSet{'a','b','c'}})
	collections -> excludesAll(OrderedSet{OrderedSet{'a','b','d'}})
	collections -> excludesAll(OrderedSet{'a','b','d'})
	eClasses -> excludesAll(p.eClassifiers)
	OrderedSet{p.eClassifiers->first()}-> excludesAll(p.eClassifiers)
	mixed -> excludes('z')
	mixed -> excludes('a')
	strings -> excludes('z')
	strings -> excludes('a')
	integers -> excludes(6)
	integers -> excludes(2)
	OrderedSet{true} -> excludes(false)
	booleans -> excludes(false)
	reals -> excludes(5.2)
	reals -> excludes(1.2)
	eClasses -> excludes(p.eClassifiers->first())
	OrderedSet{p.eClassifiers->first()} -> excludes(p.eClassifiers->last())
	collections -> excludes(OrderedSet{'a','b','c'})
	collections -> excludes(OrderedSet{'z','b','c'})
	strings -> union(OrderedSet{'a','b'})
	strings -> union(OrderedSet{'a','b','d'})
	integers -> union(OrderedSet{1,2})
	integers -> union(OrderedSet{1,2,4})
	booleans -> union(OrderedSet{true,false}) -> sortedBy(toString())
	OrderedSet{false} -> union(OrderedSet{true,false}) -> sortedBy(toString())
	reals -> union(OrderedSet{1.2,2.1}) -> sortedBy(toString())
	reals -> union(OrderedSet{1.2,2.3}) -> sortedBy(toString())
	collections -> union(OrderedSet{OrderedSet{'a','b','c'}}) -> sortedBy(toString())
	collections -> union(OrderedSet{OrderedSet{'a','b','d'}}) -> sortedBy(toString())
	eClasses -> union(p.eClassifiers->asOrderedSet()) -> size()
	mixed -> count('z')
	mixed -> count('a')
	strings -> count('z')
	strings -> count('a')
	integers -> count(6)
	integers -> count(2)
	OrderedSet{true,true} -> count(false)
	booleans -> count(false)
	reals -> count(5.2)
	reals -> count(1.2)
	eClasses -> count(p.eClassifiers->first())
	OrderedSet{p.eClassifiers->first()} -> count(p.eClassifiers->last())
	collections -> count(OrderedSet{'a','b','c'})
	collections -> count(OrderedSet{'z','b','c'})
	strings -> append('z')
	strings -> append('a')
	Sequence{'a','b','c'} -> append('b')
	integers -> append(6)
	integers -> append(2)
	OrderedSet{true,true} -> append(false)
	booleans -> append(false)
	reals -> append(5.2)
	reals -> append(1.2)
	eClasses -> append(p.eClassifiers->first()) -> collect(name)
	OrderedSet{p.eClassifiers->first()} -> append(p.eClassifiers->last()) -> collect(name)
	collections -> append(OrderedSet{'a','b','c'})
	collections -> append(OrderedSet{'z','b','c'})
	mixed -> prepend('z')
	mixed -> prepend('a')
	strings -> prepend('z')
	strings -> prepend('a')
	integers -> prepend(6)
	integers -> prepend(2)
	OrderedSet{true,true} -> prepend(false)
	booleans -> prepend(false)
	reals -> prepend(5.2)
	reals -> prepend(1.2)
	eClasses -> prepend(p.eClassifiers->first()) -> collect(name)
	OrderedSet{p.eClassifiers->first()} -> prepend(p.eClassifiers->last()) -> collect(name)
	collections -> prepend(OrderedSet{'a','b','c'})
	collections -> prepend(OrderedSet{'z','b','c'})
	mixed -> insertAt(1,'z')
	mixed -> insertAt(1,'a')
	strings -> insertAt(1,'z')
	strings -> insertAt(1,'a')
	integers -> insertAt(1,6)
	integers -> insertAt(1,2)
	OrderedSet{true,true} -> insertAt(1,false)
	booleans -> insertAt(1,false)
	reals -> insertAt(1,5.2)
	reals -> insertAt(1,1.2)
	eClasses -> insertAt(1,p.eClassifiers->first()) -> collect(name)
	OrderedSet{p.eClassifiers->first()} -> insertAt(1,p.eClassifiers->last()) -> collect(name)
	collections -> insertAt(1,OrderedSet{'a','b','c'})
	collections -> insertAt(1,OrderedSet{'z','b','c'})
	mixed -> indexOf('a')
	strings -> indexOf('a')
	integers -> indexOf(2)
	booleans -> indexOf(false)
	reals -> indexOf(1.2)
	eClasses -> indexOf(p.eClassifiers->first())
	collections -> indexOf(OrderedSet{'a','b','c'})
	mixed -> including('z')
	mixed -> including('a')
	strings -> including('z')
	strings -> including('a')
	integers -> including(6)
	integers -> including(2)
	OrderedSet{true,true} -> including(false)
	booleans -> including(false)
	reals -> including(5.2)
	reals -> including(1.2)
	eClasses -> including(p.eClassifiers->first()) -> size()
	OrderedSet{p.eClassifiers->first()} -> including(p.eClassifiers->last()) -> collect(name) -> sortedBy(toString())
	collections -> including(OrderedSet{'a','b','c'})
	collections -> including(OrderedSet{'z','b','c'})
	mixed -> excluding('z')
	mixed -> excluding('a')
	strings -> excluding('z')
	strings -> excluding('a')
	integers -> excluding(6)
	integers -> excluding(2)
	OrderedSet{true,true} -> excluding(false)
	booleans -> excluding(false)
	reals -> excluding(5.2)
	eClasses -> excluding(p.eClassifiers->first()) -> collect(name) -> sortedBy(toString())
	OrderedSet{p.eClassifiers->first()} -> excluding(p.eClassifiers->last()) -> collect(name)
	collections -> excluding(OrderedSet{'a','b','c'})
	collections -> excluding(OrderedSet{'z','b','c'})
	mixed -> at(1)
	strings -> at(1)
	integers -> at(1)
	booleans -> at(1)
	reals -> at(1)
	eClasses -> at(1).name
	collections -> at(1)
	OrderedSet{'aaa','bb','ccccc'} -> sortedBy(t | t.size())
	integers -> sortedBy(t | t)
	reals -> sortedBy(t | t)
	booleans -> sortedBy(t | t.toString())
	eClasses -> sortedBy(t | t.name) -> collect(name)
	OrderedSet{OrderedSet{'a','b','c'}, OrderedSet{'a','b'}} -> sortedBy(t | t->size())
	integers -> sum()
	reals -> sum()
	mixed -> exists(t | t = 'b')
	mixed -> exists(t | t = 'z')
	strings -> exists(t | t = 'b')
	strings -> exists(t | t = 'z')
	integers -> exists(t | t = 1)
	integers -> exists(t | t = 4)
	reals -> exists(t | t = 1.2)
	reals -> exists(t | t = 4.2)
	booleans -> exists(t | t = true)
	eClasses -> exists(t | t.name = 'ClasseB')
	collections -> exists(t | t.size() = 3)
	collections -> exists(t | t.size() = 1)
	mixed -> select(t | t = 'b')
	mixed -> select(t | t = 'z')
	strings -> select(t | t = 'b')
	strings -> select(t | t = 'z')
	integers -> select(t | t = 1)
	integers -> select(t | t = 4)
	reals -> select(t | t = 1.2)
	reals -> select(t | t = 4.2)
	booleans -> select(t | t = true)
	eClasses -> select(t | t.name = 'ClasseB') -> collect(name)
	collections -> select(t | t.size() = 3)
	collections -> select(t | t.size() = 1)
	mixed -> reject(t | t = 'b')
	mixed -> reject(t | t = 'z')
	strings -> reject(t | t = 'b')
	strings -> reject(t | t = 'z')
	integers -> reject(t | t = 1)
	integers -> reject(t | t = 4)
	reals -> reject(t | t = 1.2)
	reals -> reject(t | t = 4.2)
	booleans -> reject(t | t = true)
	eClasses -> reject(t | t.name = 'ClasseB') -> collect(name)
	collections -> reject(t | t.size() = 3)
	collections -> reject(t | t.size() = 1)
	mixed -> forAll(t | t = 'b')
	mixed -> forAll(t | t = 'z')
	strings -> forAll(t | t = 'b')
	strings -> forAll(t | t = 'z')
	integers -> forAll(t | t = 1)
	integers -> forAll(t | t = 4)
	reals -> forAll(t | t = 1.2)
	reals -> forAll(t | t = 4.2)
	booleans -> forAll(t | t = true)
	eClasses -> forAll(t | t.name = 'ClasseB')
	collections -> forAll(t | t.size() = 3)
	collections -> forAll(t | t.size() = 1)
	mixed -> any(t | t = 'b')
	mixed -> any(t | t = 'z')
	strings -> any(t | t = 'b')
	strings -> any(t | t = 'z')
	integers -> any(t | t = 1)
	integers -> any(t | t = 4)
	reals -> any(t | t = 1.2)
	reals -> any(t | t = 4.2)
	booleans -> any(t | t = true)
	eClasses -> any(t | t.name = 'ClasseB') -> collect(name)
	collections -> any(t | t.size() = 3)
	collections -> any(t | t.size() = 1)
	mixed -> one(t | t = 'b')
	mixed -> one(t | t = 'z')
	strings -> one(t | t = 'b')
	strings -> one(t | t = 'z')
	integers -> one(t | t = 1)
	integers -> one(t | t = 4)
	reals -> one(t | t = 1.2)
	reals -> one(t | t = 4.2)
	booleans -> one(t | t = true)
	eClasses -> one(t | t.name = 'ClasseB')
	collections -> one(t | t.size() = 3)
	collections -> one(t | t.size() = 1)
	mixed -> isUnique(toString())
	strings -> isUnique(toString())
	integers -> isUnique(toString())
	reals -> isUnique(toString())
	booleans -> isUnique(toString())
	eClasses -> isUnique(toString())
	collections -> isUnique(toString())
	mixed -> oclIsUndefined()
	strings -> oclIsUndefined()
	integers -> oclIsUndefined()
	booleans -> oclIsUndefined()
	reals -> oclIsUndefined()
	eClasses -> oclIsUndefined()
	collections -> oclIsUndefined()
	strings.oclIsUndefined()
	integers.oclIsUndefined()
	booleans.oclIsUndefined()
	reals.oclIsUndefined()
	eClasses.oclIsUndefined()
	collections.oclIsUndefined()
	OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p
	OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size()
	OrderedSet{p,'test',true,1,2.2} -> filter(String)
	OrderedSet{p,'test',true,1,2.2} -> filter(Integer)
	OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)
	OrderedSet{p,'test',true,1,2.2} -> filter(Real)
	mixed -> subOrderedSet(1,2)
	strings -> subOrderedSet(1,2)
	integers -> subOrderedSet(1,2)
	reals -> subOrderedSet(1,2)
	booleans -> subOrderedSet(1,2)
	eClasses -> subOrderedSet(1,2) -> collect(name)
	collections -> subOrderedSet(1,2)
	eClasses -> filter(EClass) -> closure(e : EClass | e.eSuperTypes->asSet()) -> collect(name)
	mixed -> removeAll(Sequence{'a','b'})
	mixed -> removeAll(Sequence{'a','b','d'})
	strings -> removeAll(Sequence{'a','b'})
	strings -> removeAll(Sequence{'a','b','d'})
	integers -> removeAll(Sequence{1,2})
	integers -> removeAll(Sequence{1,2,4})
	booleans -> removeAll(Sequence{true,false})
	Sequence{false} -> removeAll(Sequence{true,false})
	reals -> removeAll(Sequence{1.2,2.1})
	reals -> removeAll(Sequence{1.2,2.3})
	collections -> removeAll(Sequence{Sequence{'a','b','c'}})
	collections -> removeAll(Sequence{Sequence{'a','b','d'}})
	collections -> removeAll(Sequence{'a','b','d'})
	eClasses -> removeAll(p.eClassifiers->asSequence()) -> collect(name)
	mixed->selectByType(String)
	strings->selectByType(String)
	reals->selectByType(Real)
	integers->selectByType(Integer)
	booleans->selectByType(Boolean)
	eClasses->selectByType(EClass) -> collect(name)
	eClasses->selectByType(EClassifier) -> collect(name)
	mixed->selectByKind(String)
	strings->selectByKind(String)
	reals->selectByKind(Real)
	integers->selectByKind(Integer)
	booleans->selectByKind(Boolean)
	eClasses->selectByKind(EObject) -> collect(name)
	eClasses->selectByKind(EClass) -> collect(name)
	eClasses->selectByKind(EClassifier) -> collect(name)
	mixed -> addAll(Sequence{'a','b'})
	mixed -> addAll(Sequence{'a','b','d'})
	strings -> addAll(Sequence{'a','b'})
	strings -> addAll(Sequence{'a','b','d'})
	integers -> addAll(Sequence{1,2})
	integers -> addAll(Sequence{1,2,4})
	booleans -> addAll(Sequence{true,false})
	Sequence{false} -> addAll(Sequence{true,false})
	reals -> addAll(Sequence{1.2,2.1})
	reals -> addAll(Sequence{1.2,2.3})
	collections -> addAll(Sequence{Sequence{'a','b','c'}})
	collections -> addAll(Sequence{Sequence{'a','b','d'}})
	collections -> addAll(Sequence{'a','b','d'})
	eClasses -> addAll(p.eClassifiers->asSequence()) -> collect(name)
	integers -> startsWith(OrderedSet{1, 2})
	integers -> startsWith(OrderedSet{1, 1})
	integers -> startsWith(OrderedSet{1, 2})
	integers -> startsWith(OrderedSet{1, 1})
	mixed -> indexOfSlice(Sequence{'a','b'})
	strings -> indexOfSlice(Sequence{'a','b'})
	integers -> indexOfSlice(Sequence{1,2})
	booleans -> indexOfSlice(Sequence{true,false})
	reals -> indexOfSlice(Sequence{1.2,2.1})
	eClasses -> indexOfSlice(p.eClassifiers)
	integers -> endsWith(OrderedSet{2, 3})
	integers -> endsWith(OrderedSet{1, 1})
	integers -> endsWith(OrderedSet{2, 3})
	integers -> endsWith(OrderedSet{1, 1})
	mixed -> append('a') -> lastIndexOf('a')
	strings -> append('a') -> lastIndexOf('a')
	integers -> append(2) -> lastIndexOf(2)
	booleans -> append(false) -> lastIndexOf(false)
	reals -> append(1.2) -> lastIndexOf(1.2)
	eClasses -> append(p.eClassifiers->first()) -> lastIndexOf(p.eClassifiers->first())
	collections -> append(Sequence{'a','b','c'}) -> lastIndexOf(Sequence{'a','b','c'})
	mixed -> lastIndexOfSlice(Sequence{'a','b'})
	strings -> lastIndexOfSlice(Sequence{'a','b'})
	integers -> lastIndexOfSlice(Sequence{1,2})
	booleans -> lastIndexOfSlice(Sequence{true,false})
	reals -> lastIndexOfSlice(Sequence{1.2,2.1})
	eClasses -> lastIndexOfSlice(p.eClassifiers)
	mixed.oclAsSet()
	strings.oclAsSet()
	integers.oclAsSet()
	reals.oclAsSet()
	booleans.oclAsSet()
	eClasses.oclAsSet() -> collect(name)
	collections.oclAsSet()
	integers->min()
	reals->max()
