Existem alguns padrões de recursão que aparecem frequentemente em programação, como por exemplo a recursão de cauda. Em Haskell, podemos representar esses padrões como funções de ordem superior, usando o módulo 'recursion-schemes'. Isso nos permite escrever código mais limpo e fácil de entender, além de dar mais flexibilidade na hora de fazer transformações em estruturas de dados recursivas. 