docs: def serializable_list(
          olist, attrs_to_serialize=None, rels_to_expand=None,
          group_listrels_by=None, rels_to_serialize=None,
          key_modifications=None, groupby=None, keyvals_to_merge=None,
          preserve_order=False, dict_struct=None, dict_post_processors=None):
      """
      Converts a list of model instances to a list of dictionaries
      using their `todict` method.
  
      Args:
          olist (list): The list of instances to convert
          attrs_to_serialize (list, optional): To be passed as an argument
              to the `todict` method
          rels_to_expand (list, optional): To be passed as an argument
              to the `todict` method
          group_listrels_by (dict, optional): To be passed as an argument
              to the `todict` method
          rels_to_serialize (list, optional): To be passed as an argument
              to the `todict` method
          key_modifications (dict, optional): To be passed as an argument
              to the `todict` method
  
          groupby (list, optional): An optional list of keys based on which
              the result list will be hierarchially grouped ( and converted
                  into a dict)
  
          keyvals_to_merge (list of dicts, optional): A list of parameters
              to be merged with each dict of the output list
      """
      if groupby:
          if preserve_order:
              result = json_encoder(deep_group(
                  olist, keys=groupby, serializer='todict',
                  preserve_order=preserve_order,
                  serializer_kwargs={
                      'rels_to_serialize': rels_to_serialize,
                      'rels_to_expand': rels_to_expand,
                      'attrs_to_serialize': attrs_to_serialize,
                      'group_listrels_by': group_listrels_by,
                      'key_modifications': key_modifications,
                      'dict_struct': dict_struct,
                      'dict_post_processors': dict_post_processors
                  }))
          else:
              result = deep_group(
                  olist, keys=groupby, serializer='todict',
                  preserve_order=preserve_order,
                  serializer_kwargs={
                      'rels_to_serialize': rels_to_serialize,
                      'rels_to_expand': rels_to_expand,
                      'attrs_to_serialize': attrs_to_serialize,
                      'group_listrels_by': group_listrels_by,
                      'key_modifications': key_modifications,
                      'dict_struct': dict_struct,
                      'dict_post_processors': dict_post_processors
                  })
          return result
      else:
          result_list = map(
              lambda o: serialized_obj(
                  o, attrs_to_serialize=attrs_to_serialize,
                  rels_to_expand=rels_to_expand,
                  group_listrels_by=group_listrels_by,
                  rels_to_serialize=rels_to_serialize,
                  key_modifications=key_modifications,
                  dict_struct=dict_struct,
                  dict_post_processors=dict_post_processors),
              olist)
          if keyvals_to_merge:
              result_list = [merge(obj_dict, kvdict)
                             for obj_dict, kvdict in
                             zip(result_list, keyvals_to_merge)]
          return result_list