code: def _f_list_parser(fl, ref_frame):
      """Parses the provided forcelist composed of items
      of the form (obj, force).
      Returns a tuple containing:
          vel_list: The velocity (ang_vel for Frames, vel for Points) in
                  the provided reference frame.
          f_list: The forces.
  
      Used internally in the KanesMethod and LagrangesMethod classes.
  
      """
  
      def flist_iter():
          for pair in fl:
              obj, force = pair
              if isinstance(obj, ReferenceFrame):
                  yield obj.ang_vel_in(ref_frame), force
              elif isinstance(obj, Point):
                  yield obj.vel(ref_frame), force
              else:
                  raise TypeError(
                      "First entry in each forcelist pair must "
                      "be a point or frame."
                  )
  
      if not fl:
          vel_list, f_list = (), ()
      else:
          unzip = lambda l: list(zip(*l)) if l[0] else [(), ()]
          vel_list, f_list = unzip(list(flist_iter()))
      return vel_list, f_list
  
imports: from sympy.utilities import dict_merge
  from sympy.utilities.iterables import iterable
  from sympy.physics.vector import Dyadic, Vector, ReferenceFrame, Point, dynamicsymbols
  from sympy.physics.vector.printing import vprint, vsprint, vpprint, vlatex, init_vprinting
  from sympy.physics.mechanics.particle import Particle
  from sympy.physics.mechanics.rigidbody import RigidBody
  from sympy.simplify.simplify import simplify
  from sympy import Matrix, Mul, Derivative, sin, cos, tan, S
  from sympy.core.function import AppliedUndef
  from sympy.physics.mechanics.inertia import inertia, inertia_of_point_mass
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 18 for calling a global function with example usage: _f_list_parser(fl, ref_frame) and returns: vel_list,  f_list