GHC の ScopedTypeVariables オプション

Rosetta Code にあるDetect division by zeroコンパイルしてみたのですが、GHC 7.6.3ではエラーになってしまいます。

出力されたエラーメッセージで検索すると arising from a use of `Control.Exception.catch' がみつかりました。

{-# LANGUAGE ScopedTypeVariables #-}

を先頭に書くかGHCi で

> :set -XScopedTypeVariables

を指定する必要があります。

(e :: C.SomeException)を指定しないとエラーになりました。

{-# LANGUAGE ScopedTypeVariables #-}
import qualified Control.Exception as C

check x y = C.catch (x `div` y `seq` return False) (\(e :: C.SomeException) -> return True)
Main> check 1 3 -- > False
Main> check 1 0 -- > True