O que o padrão Aux realiza no Scala?

Eu tenho uma noção do padrão Aux (como usado em informe e em outro lugar) no qual um membro de tipo é extraído em um parâmetro de tipo, e eu sei que é uma solução alternativa o fato de que argumentos na mesma lista de argumentos não podem depender um no outro - mas geralmente não estou claro para que é usado e para quais problemas ele resolve.

Por exemplo, atualmente estou tentando descobrir como preservar e trabalhar com o tipo mais específico retornado por uma macro de caixa branca - essa é uma base de usuário para Aux?

Existe uma descrição simples?

questionAnswers(1)

yourAnswerToTheQuestion