They are writer monads for sure, but WriterT does not subsume them. If a typeclass method has type Writer w a, it does not allow GeneralizedNewtypeDeriving on it due to the type roles.
I don't really have any idea how instance warnings should look like.
On Sun, 7 Apr 2019, Fumiaki Kinoshita wrote:
> I removed Foldable/Traversable instances from the patch with reluctance. I'd still like to add these instances:
>
> Functor ((,,) a b)
> (Monoid a, Monoid b) => Applicative ((,,) a b)
> (Monoid a, Monoid b) => Monad ((,,) a b)
> Functor ((,,,) a b c)
> (Monoid a, Monoid b, Monoid c) => Applicative ((,,,) a b c)
> (Monoid a, Monoid b, Monoid c) => Monad ((,,,) a b c)
Still duplicates to the Writer monad.
How about extending the patch by the long needed instance warnings? :-)