def METHOD_NAME(filename):
    dr.load_components("insights.specs.default")
    dr.load_components("insights.specs.insights_archive")
    dr.load_components("insights.specs.sos_archive")
    dr.load_components("insights.specs.jdr_archive")
    dr.load_components("insights.parsers")
    dr.load_components("insights.combiners")
    parsers = sorted([c for c in dr.DELEGATES if is_parser(c)], key=dr.get_name)
    combiners = sorted([c for c in dr.DELEGATES if is_combiner(c)], key=dr.get_name)
    specs = sorted([c for c in dr.DELEGATES
                    if is_datasource(c) and dr.get_module_name(c) == 'insights.specs'],
                   key=dr.get_name)
    with open(filename, "w") as fh:
        fh.write("Components Cross-Reference\n")
        fh.write("==========================\n")
        fh.write("Specs Dependents\n")
        fh.write("----------------\n")
        for spec in specs:
            info = dict(name=dr.get_name(spec))
            info['dependents'] = []
            for d in dr.get_dependents(spec):
                info['dependents'].append({
                    'name': dr.get_name(d),
                    'dependents': [dr.get_name(sd) for sd in dr.get_dependents(d)]
                })
            print_spec_info(info, fh)
        blank_line(fh)
        fh.write("Parser Dependents/Dependencies\n")
        fh.write("------------------------------\n")
        for pars in parsers:
            print_info(component_info(pars), fh)
        blank_line(fh)
        fh.write("Combiner Dependents/Dependencies\n")
        fh.write("--------------------------------\n")
        for comb in combiners:
            print_info(component_info(comb), fh)