A questão não é teres de ser sintética (não é obrigatório); Haskell permite-te dizer muita coisa em poucas linhas de código e, normalmente, quanto menos código utilizas, mais legível fica a ideia que lhe está subjacente. Mas isso é algo que se consegue com a prática, sendo perfeitamente normal escrever código maior no início.
Adicionalmente, ali onde colocaste a mesma definição 3x deu para perceber que não compreendeste completamente a que se referiam os nomes dos argumentos, algo que deverás estudar melhor, portanto.
↧