They merge concurrent changes made by different threads to a pair of coupled objects. An in merger receives changes from another object and merges them with the local object. An out merger receives changes from the coupled object and transforms them to a form understood by the remote in merger.
Example of in/out merger: Munson's merger based on change histories.
In/Out mergers can be combined with In/Out couplers.