docs: def typify(value: Union[dict, list, set, str]):
      """ Enhance block operation with native types.
  
      Typify takes a blockchain operation or dict/list/value,
      and then it parses and converts string types into native data types where appropriate.
      """
      if type(value) == dict:
          return walk_values(typify, value)
  
      if type(value) in [list, set]:
          return list(map(typify, value))
  
      if type(value) == str:
          if re.match('^\d+\.\d+ (STEEM|SBD|VESTS)$', value):
              return keep_in_dict(dict(Amount(value)), ['amount', 'asset'])
  
          if re.match('^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$', value):
              return parse_time(value)
  
      return value