Alterando o tipo de retorno de uma função no Haskell?

Existe uma maneira sucinta de alterar o tipo de retorno de uma função?

Considerarpor exemplo comparing noData.Ord. Retorna umOrdering. No entanto, estou interessado apenas em saber se os dois itens são iguais ou não. Então, eu preciso converter o resultadoOrdering para umBool.

Uma maneira simples de pensar é:

isEqualOn f x y = if comparing f x y==EQ then True else False 

(ouisEqualOn f x y = comparing f x y==EQ como aqui indicado nos comentários).

Existe uma maneira mais composicional de fazer isso (meio que adaptandocomparing ou escrevê-lo de maneira inútil) sem ter que escrever tudo? Idealmente, estou procurando por algo que funcione também em funções n-árias.

- Atualização -

Conforme sugerido pelas respostas / comentários, o exemplo específico acima (isEqualOn) pode ser implementado usando o padrãoon funciona comoon (==). No entanto, minha pergunta é sobre a técnica geral de alterar os tipos de retorno de função de maneira composicional / sem sentido, conforme exemplificado pela abordagem da SEC nos comentários.

questionAnswers(2)

yourAnswerToTheQuestion