¿Cómo modelar ciclos entre instancias de clase inmutables?

Las clases inmutables son geniales, pero hay un gran problema que no puedo pensar en una forma sensata de resolver: los ciclos.

class Friend {
   Set<Friend> friends();
}

¿Cómo me modela tenerte como amigo que a su vez me tiene como amigo?

INMUTABILIDAD&nbsp;Esta clase del mundo exterior definitivamente debería ser inmutable. El valor mantenido internamente debe ser constante a los efectos de las verificaciones de igualdad.