Endofunción como monoide
Estoy intentando esto (con fines de aprendizaje):
{-# LANGUAGE FlexibleInstances #-}
instance Monoid (a -> a) where
mempty = id
mappend f g = f . g
esperandoid <> id
ser igual aid . id
Sin embargo, con(id <> id) 1
Recibo este error:
Non type-variable argument in the constraint: Monoid (a -> a)
¿Qué debo cambiar para ejecutarlo?
Es solo para comprender mejor los monoides y las clases de tipo Haskell, no para un uso práctico.