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, а не для практического использования..