エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

整数型変換

import Data.Word

-- 32ビット符号なし整数型へ変換
toWord32 :: (Enum a) => a -> Word32
toWord32 = toEnum.fromEnum

-- 16ビット符号なし(ry
toWord16 :: (Enum a) => a -> Word16
toWord16 = toEnum.fromEnum

-- 8ビット(ry
toWord8 :: (Enum a) => a -> Word8
toWord8 = toEnum.fromEnum

地味だけど、結構お世話になってしまう型変換。なお、変換できない場合(型の表現できる値よりも大きな値を与えた場合)は例外が投げられます。
式の形がおんなじなんで、もっと簡単な書き方があるのかもしれません。