我有一个类型,基本上作为另一种数据类型的标记:
import Data.Word data RijndaelField = RF Word8
我想RijndaelField
以最简单的方式"继承" Word8
实例Bits
:
import Data.Bits instance Bits RijndaelField where RF a .&. RF b = RF $ a .&. b RF a .|. RF b = RF $ a .|. b RF a `xor` RF b = RF $ a `xor` b complement (RF a) = RF $ complement a shift (RF a) n = RF $ shift a n rotate (RF a) n = RF $ rotate a n bitSize (RF a) = bitSize a isSigned (RF a) = isSigned a testBit (RF a) n = testBit a n bit n = RF $ bit n popCount (RF a) = popCount a
是否有更短的方式来表达RijndaelField
和之间的关系Word8
?