Note that this function is in some sense dual to translate
(for types which are also Transformable); moving the origin
itself while leaving the object "fixed" is dual to fixing the
origin and translating the diagram.