code: def equal(actual, expected):
      '''
      Compare actual and expected using ==
  
      >>> expect = Expector([])
      >>> expect(1).to_not(equal, 2)
      (True, 'equal: expect 1 == 2')
  
      >>> expect(1).to(equal, 1)
      (True, 'equal: expect 1 == 1')
      '''
      is_passing = (actual == expected)
  
      types_to_diff = (str, dict, list, tuple)
      if not is_passing and isinstance(expected, types_to_diff) and isinstance(actual, types_to_diff):
          readable_diff = difflib.unified_diff(pformat(expected).split('\n'),
                                               pformat(actual).split('\n'), n=99)
          description = '\n'.join(['equal:'] + list(readable_diff))
      else:
          description = "equal: expect {} == {}".format(actual, expected)
      outcome = (is_passing, description)
      return outcomf equal(actual, expected):
      '''
      Compare actual and expected using ==
  
      >>> expect = Expector([])
      >>> expect(1).to_not(equal, 2)
      (True, 'equal: expect 1 == 2')
  
      >>> expect(1).to(equal, 1)
      (True, 'equal: expect 1 == 1')
      '''
      is_passing = (actual == expected)
  
      types_to_diff = (str, dict, list, tuple)
      if not is_passing and isinstance(expected, types_to_diff) and isinstance(actual, types_to_diff):
          readable_diff = difflib.unified_diff(pformat(expected).split('\n'),
                                               pformat(actual).split('\n'), n=99)
          description = '\n'.join(['equal:'] + list(readable_diff))
      else:
          description = "equal: expect {} == {}".format(actual, expected)
      outcome = (is_passing, description)
      return outcome
docs: Compare actual and expected using ==
  
      >>> expect = Expector([])
      >>> expect(1).to_not(equal, 2)
      (True, 'equal: expect 1 == 2')
  
      >>> expect(1).to(equal, 1)
      (True, 'equal: expect 1 == 1')