fun of programming からの問題についての質問です。

newtype Except a b c = E(a b (Either String c))

instance ArrowChoice a => Arrow (Except a) where

↑この定義を求めよ、という問題がありますが分かりませんでした。Arrowに
Stringの例外を挿入するということなんですが、挫折しました。

どうかよろしくお願いいたします。