def have_loops(nodes):
    """
    Checks to see whether there are any Loops in the list of nodes and
    their sub-trees.

    :param nodes: list of PSyIR nodes to check for Loops.
    :type nodes: list of :py:class:`psyclone.psyGen.Node`
    :returns: True if a Loop is found, False otherwise.
    :rtype: bool

    """
    from psyclone.nemo import NemoLoop
    for node in nodes:
        if node.walk(NemoLoop):
            return True
    return False
