Estou tentando entender o documento ΠΣ: Tipos dependentes sem o Sugar , implementando um intérprete e um verificador de tipos para o idioma. Ao fazer isso, vi que a unfold t as x -> usintaxe para definições recursivas (a sintaxe é definida na Seção 2.1) vincula uma variável, mas não vejo por que isso é necessário. Nenhum dos exemplos do artigo realmente usa a variável de encadernação - todos eles usam um formato abreviado unfold t(significado unfold t as x -> x).
Eu não ver que o tipo de verificação regra para isso (da seção 5) usa a variável de ligação, mas eu não entendo as implicações desta. Tanto quanto eu posso dizer, unfold t as x -> ué totalmente equivalente a let x = unfold t in u.
Alguém pode fornecer um exemplo de quando a ligação de variável é útil ou necessária? Existe algum termo que verifica o tipo com o formato longo, unfoldmas não com o formato curto e let?