Suppose one has two (or more) functions having the same domain and codomain; these are often called "transformations". Then one can form chains of transformations composed together, such as . Such chains have the algebraic structure of a monoid, called a "transformation monoid" or (much more seldom) a "composition monoid". In general, transformation monoids can have remarkably complicated structure. One particular notable example is the de Rham curve. The set of "all" functions is called the full transformation semigroup or "symmetric semigroup" on . (One can actually define two semigroups depending how one defines the semigroup operation as the left or right composition of functions.)