Estruturas de dados duplamente ligadas em erlang

Oi eu quero fazer uma árvore que mantém referências de mão dupla entre pai e filhos. Mas parece impossível achá-lo, pois quando eu crio o primeiro objeto eu não tenho o outro, portanto, não posso ter uma referência a ele. Aqui está um código de exemplo.

-record(node,{name,children,root}).

main()->
    A = #node{name="node-A",
          children=[B], %variable B is  unbound
          root=nil},
    B = #node{name="node-B",
          children=[],
          root=A},
    Tree = A.

Outro exemplo para esse problema seria implementar uma lista duplamente vinculada (http://en.wikipedia.org/wiki/Doubly_linked_list)

-record(node,{prev,name,next}).

main()->
    A = #node{prev=nil,
          name="node-A",
          next=B}, % variable B is unbound
    B = #node{prev=A,
          name="node-B",
          next=nil},
    LinkedList = A.

Existe uma maneira de implementar esse tipo de estrutura?

questionAnswers(5)

yourAnswerToTheQuestion