Haskell Snappy パッケージの decompress を利用した場合の例外処理について
Snappy パッケージの下記 decompress を利用する際、どのようにコーディングを行えば例外処理が出来るでしょうか?
decompress :: ByteString -> ByteString
Decompress data in the Snappy format.
If the input is not compressed or is corrupt, an exception will be thrown.
try
を利用した場合 Left になると思ったのですが、結果は Right となってします。
ghci> import Data.ByteString
ghci> import Control.Exception
ghci> import Codec.Compression.Snappy
ghci> let bs = "test" :: ByteString
ghci> decompress bs
"*** Exception: user error (Codec.Compression.Snappy.decompress: corrupt input )
ghci> try (return $ decompress bs)::IO (Either SomeException ByteString)
Right "*** Exception: user error (Codec.Compression.Snappy.decompress: corrupt input )