code: def apply(operations, a_tokens, b_tokens):
      
      for operation in operations:
  
          if isinstance(operation, Equal):
              #print("Equal: {0}".format(str(a_tokens[operation.a1:operation.a2])))
              for t in a_tokens[operation.a1:operation.a2]: yield t
  
          elif isinstance(operation, Insert):
              #print("Insert: {0}".format(str(b_tokens[operation.b1:operation.b2])))
              for t in b_tokens[operation.b1:operation.b2]: yield t
  
          elif isinstance(operation, Delete):
              #print("Delete: {0}".format(str(a_tokens[operation.a1:operation.a2])))
              pass
  
          else:
              raise TypeError("Unexpected operation type " + \
                              "{0}".format(type(operation)))
docs: Applies a sequences of operations to tokens -- copies tokens from
      `a_tokens` and `b_tokens` according to `operations`.
  
      :Parameters:
          operations : sequence of :~class:`deltas.Operation`
              Operations to perform
          a_tokens : list of `comparable`
              Starting sequence of comparable tokens
          b_tokens : list of `comparable`
              Ending list of comparable tokens
  
      :Returns:
          A new list of tokens