文字列のSHA1をとる

こうかなあ。

import Codec.Binary.UTF8.String (encode)
import Data.ByteString.Lazy (pack)
import Data.Digest.Pure.SHA (showDigest, sha1)

main = do
  putStr $ showDigest $ sha1 $ pack $ encode "寿限無寿限無五劫の擦り切れ海砂利水魚の水行末雲来末風来末食う寝る処に住む処やぶら小路の藪柑子パイポパイポパイポのシューリンガンシューリンガンのグーリンダイグーリンダイのポンポコピーのポンポコナーの長久命の長助"

ぼやき

Data.ByteString.LazyモジュールのByteStringとかData.ByteStringモジュールのByteStringとか、名前が一緒で似ているのに違うものがあり、かつライブラリが受け付けるのはそのひとつで、ドキュメントの字面を見ただけではどちらか分からずコンパイルしてエラーになって初めて気が付いて、その度にドキュメントを紐解かねばならず、片方のオブジェクトをもう片方のオブジェクトに変換する方法が分からなくていらいらした。