Merges adjacent moments, one by one from left to right, by calling merge_func(m1, m2).

circuit Input circuit to apply the transformations on. The input circuit is not mutated.
merge_func Callable to determine whether two adjacent moments in the circuit should be merged. If the moments can be merged, the callable should return the merged moment, else None.
tags_to_ignore Tagged circuit operations marked with any of tags_to_ignore will be ignored when recursively applying the transformer primitive to sub-circuits, given deep=True.
deep If true, the transformer primitive will be recursively applied to all circuits wrapped inside circuit operations.

Copy of input circuit with merged moments.