Being instance of Monoid is not checked
It is possible pass not only instances of Monoid to tell function and load the file with GHCi. GHCi shows type f :: (MonadWriter ((a -> b) -> [a] -> [b]) m) => t -> m ()
f _ = tell map
However, if code is
f = tell map
GHCi shows type error(no instance) as expected.
It seems very strange that type correctness depends on number of parameters for function that is not used anywhere.
|Component||Compiler (Type checker)|