old_contents: from itertoolz.core import groupby, identity
  
  def countby(func, seq):
      """ Group elements of a collection by a key function
  
      >>> countby(len, ['cat', 'mouse', 'dog'])
      {3: 2, 5: 1}
  
      >>> def even(x): return x % 2 == 0
      >>> countby(even, [1, 2, 3])  # doctest:+SKIP
      {True: 1, False: 2}
  
      See Also:
          groupby
      """
      return dict([(k, len(v)) for k, v in groupby(func, seq).items()])
  
  
  def frequencies(seq):
      """ Find number of occurrences of each value in seq
  
      >>> frequencies(['cat', 'cat', 'ox', 'pig', 'pig', 'cat'])  #doctest: +SKIP
      {'cat': 3, 'ox': 1, 'pig': 2}
  
      See Also:
          countby
          groupby
      """
      return countby(identity, seq)
  
new_contents: from itertoolz.core import groupby, identity
  
  def countby(func, seq):
      """ Count elements of a collection by a key function
  
      >>> countby(len, ['cat', 'mouse', 'dog'])
      {3: 2, 5: 1}
  
      >>> def even(x): return x % 2 == 0
      >>> countby(even, [1, 2, 3])  # doctest:+SKIP
      {True: 1, False: 2}
  
      See Also:
          groupby
      """
      return dict([(k, len(v)) for k, v in groupby(func, seq).items()])
  
  
  def frequencies(seq):
      """ Find number of occurrences of each value in seq
  
      >>> frequencies(['cat', 'cat', 'ox', 'pig', 'pig', 'cat'])  #doctest: +SKIP
      {'cat': 3, 'ox': 1, 'pig': 2}
  
      See Also:
          countby
          groupby
      """
      return countby(identity, seq)
  
subject: fix typo in countby docstring