def _whole_basis_types(basis):
    """
    Get a list of all the types of features in this basis set.

    """
    all_types = set()
    for v in basis['elements'].values():
        if 'electron_shells' in v:
            for sh in v['electron_shells']:
                all_types.add(sh['function_type'])
        if 'ecp_potentials' in v:
            for pot in v['ecp_potentials']:
                all_types.add(pot['ecp_type'])
    return sorted(list(all_types))
