p.328のその箇所を、 eval (Div t u) = do x <- eval t y <- eval u if (y == 0 or x == raise "-" or y == raise "-") then raise "division by zero" else return (x div y) として,instance宣言の(Raise e) >>= Raise e を書かないのでもいいんでしょうか? 現プログラムは私にはやっぱり少し理解しにくいので。
instance Monad Exc の宣言自体は書くのですが、 その中の(Raise e) >>= q = Raise e を書かずに (あるいは書いても),eval(Div t u) のdo記述 部を上のように書くのではダメなのでしょうか?