That's an interesting question. I'm not even close to an expert, but I *think* that parametricity prevents those particular rules from breaking Safe Haskell guarantees. The laws may not *hold* for a broken instance, but I don't *think* that lets you break type safety or IO encapsulation.

On Nov 13, 2014 2:03 PM, "Wolfgang Jeltsch" <g9ks157k@acme.softbase.org> wrote:

Am Freitag, den 15.08.2014, 23:10 +0300 schrieb Wolfgang Jeltsch:
> Hi,
>
> the module Control.Arrow declares a set of rules for the Arrow class. It
> is marked “Trustworthy”, probably to allow these rules to actually fire.
>
> Now these rules are only correct for class instances that actually
> satisfy the arrow laws. If the author of another module defines an
> instance of Arrow that does not respect the laws, this other module
> could still be considered “Safe” by GHC, although the rules from
> Control.Arrow are bogus now.
>
> Is this considered a problem?
>
> All the best,
> Wolfgang

Hi,

could someone please answer this e-mail? This issue is important for me.

All the best,
Wolfgang


_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users