Endofunktion als Monoid

Ich versuche dies (zu Lernzwecken):

{-# LANGUAGE FlexibleInstances #-}

instance Monoid (a -> a) where
  mempty = id
  mappend f g = f . g

erwartungid <> id gleich @ seid . id

Jedoch mit(id <> id) 1 Ich erhalte diesen Fehler:

Non type-variable argument in the constraint: Monoid (a -> a)

Was muss ich ändern, um es auszuführen?

Es ist nur, um Monoide und Haskell-Typenklassen besser zu verstehen, nicht für den praktischen Gebrauch.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage