Improved readability of unification function
Replaced '%r' with %r, as this is cleaner
Added procedural restrictions to pattern objects

With that arbitrary postprocessing of the resulting objects can be done
during unification. This is necessary to express some restrictions that
cannot be expressed directly.