Transformers are the central pieces of the pipeline concept. They should be used for any
non-trivial mutation of objects. Typical instantiations are, for example, LTL to Automaton
translators, optimization steps, etc. Aside from these tasks, pseudo-transformers can be used to
provide insight into the progress of the pipeline by appending meta information to the context.
Implementation notes: It is strongly encouraged to design transformers in a stateless
fashion, since it allows for easy parallelism. As parallel processing is a central design
concept, the transform
method must support parallel calls, even if there is some state involved. Should synchronization
be costly, the implementation can enable it based on Environment.parallel()
.