¿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 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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta