F #: um valor recursivo que pode fazer referência a si mesmo

Eu tenho um registro:

type node = {
               content : string;
               parent : node option;
               branch : string option;
               children : seq<node> option;
            }

Que eu quero instanciar desta maneira:

let rec treeHead = {
                       content = "Value"
                       parent = None;
                       branch = None;
                       children = tree (Some(treeHead)) rows;
                   };

Onde

let rec tree (parent:node option) (rows:seq<CsvRow>) :seq<node> option

É uma função recursiva que obtém os filhos de um nó (para construir uma árvore). Então, como você pode ver, o objeto treeHead precisa se chamar através da função tree.

Quero dessa maneira evitar o uso do treeHead como um valor mutável e alterar sua propriedade filhos depois.

Minha pergunta é que o treeHead está gerando um erro e um aviso. O erro diz:

O valor 'treeHead' será avaliado como parte de sua própria definição.

E o aviso diz:

Esta e outras referências recursivas ao (s) objeto (s) sendo definido (s) serão verificadas quanto à inicialização da sonoridade em tempo de execução através do uso de uma referência atrasada. Isso ocorre porque você está definindo um ou mais objetos recursivos, em vez de funções recursivas. Este aviso pode ser suprimido usando '#nowarn "40"' ou '--nowarn: 40'.

Primeiro, estou fazendo isso da maneira certa (quero dizer, sem considerar a escolha mutável)? E como devo corrigir isso.

questionAnswers(1)

yourAnswerToTheQuestion