Endofunção como Monóide
Estou tentando isso (para fins de aprendizado):
{-# LANGUAGE FlexibleInstances #-}
instance Monoid (a -> a) where
mempty = id
mappend f g = f . g
esperandoid <> id
ser igual aid . id
No entanto, com(id <> id) 1
Eu recebo este erro:
Non type-variable argument in the constraint: Monoid (a -> a)
O que devo mudar para executá-lo?
É apenas para entender melhor as monoides e as classes de letras Haskell, não para qualquer uso prático.