code: def optimization_at(self,
                          circuit: Circuit,
                          index: int,
                          op: ops.Operation
                          ) -> Optional[PointOptimizationSummary]:
          
docs: Describes how to change operations near the given location.
  
          For example, this method could realize that the given operation is an
          X gate and that in the very next moment there is a Z gate. It would
          indicate that they should be combined into a Y gate by returning
          PointOptimizationSummary(clear_span=2,
                                   clear_qubits=op.qubits,
                                   new_operations=cirq.Y(op.qubits[0]))
  
          Args:
              circuit: The circuit to improve.
              index: The index of the moment with the operation to focus on.
              op: The operation to focus improvements upon.
  
          Returns:
              A description of the optimization to perform, or else None if no
              change should be made.