Endofunction as Monoid

Я пытаюсь это (в учебных целях):

{-# LANGUAGE FlexibleInstances #-}

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

ожидаяid <> id быть равнымid . id

Однако с(id <> id) 1 Я получаю эту ошибку:

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

Что я должен изменить, чтобы запустить его?

Просто лучше понять моноиды и классы типов Haskell, а не для практического использования..

Ответы на вопрос(2)

Ваш ответ на вопрос