<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_code_info(phases_or_groups):
 """Recursively load code info for a PhaseGroup or list of phases or groups."""

  if isinstance(phases_or_groups, PhaseGroup):
    return phases_or_groups.load_code_info()
  ret = []
  for phase in phases_or_groups:
    if isinstance(phase, PhaseGroup):
      ret.append(phase.load_code_info())
    else:
      ret.append(
          mutablerecords.CopyRecord(
              phase, code_info=test_record.CodeInfo.for_function(phase.func)))
  return ret