instance ComonadCofree f w => MonadFree (Co f) (Co w)
Essentially, we could require only ComonadCofree g w for some g for which there is a pairing with f. But since we don't have a type class for that, and since inference would be presumably pretty horrible, I think it makes sense to just choose Co f for g.
There is the following instance:
Essentially, we could require only
ComonadCofree g w
for someg
for which there is a pairing withf
. But since we don't have a type class for that, and since inference would be presumably pretty horrible, I think it makes sense to just chooseCo f
forg
.What do you think?