Proposal: Warn about ArrowLoop instance for Kleisli Arrows

Paterson, Ross R.Paterson at city.ac.uk
Mon Oct 10 01:03:21 CEST 2011


Heinrich Apfelmus writes:
>Thus, I suggest to add documentation to the instances, along the lines
> of "Even though every monad that supports 'mfix' can be made an instance
> of 'ArrowLoop', it usually /does not/ fulfill all of the corresponding
> ArrowLoop laws. Use this instance at your own risk."
>
> The main problem is the  right-tightening  law
>
>     loop (first h <<< f) = h <<< loop f
>
> which fails for most monads.

We could be more specific: "For many monads (those for which the '>>='
operation is strict) this instance will not satisfy the right-tightening law."



More information about the Libraries mailing list