Proposal: Warn about ArrowLoop instance for Kleisli Arrows

Henning Thielemann lemming at henning-thielemann.de
Sun Oct 9 09:57:48 CEST 2011


On Sun, 9 Oct 2011, Heinrich Apfelmus wrote:

> Hello,
>
> I recently noticed that the instance
>
>    MonadFix m => ArrowLoop (Kleisli m)
>
> does not fulfill the ArrowLoop laws for most monads, rendering it either
> useless or dangerous for the unwary. Removing it would be the correct
> thing to do, but I think that the sensible thing to do is to merely
> document said fact at the instance declaration in the haddocks. This
> way, the few monads that do support an ArrowLoop instance (most notably
> the lazy state monad) can keep their instance while everyone else is warned.

... and since the lazy state monad does not fulfill the Functor laws, 
there is no monad at all, where the ArrowLoop instance is correct?



More information about the Libraries mailing list