我想使用一个 32 位的位域来按顺序存储最后 32 次计算的结果。例如 0110 ... 将失败 pass pass fail ... 。理想情况下,最新的结果应该只是被推到位域上,而最旧的结果在另一边“消失”。例如:0110,其中 1 是最新结果,应变为 1101。
我正在努力使用Data.Bits
并且不知道如何初始化/创建位域。我得到的错误都有些相似
No instance for (Bits a0) arising from a use of `bitDefault'
The type variable `a0' is ambiguous
Possible fix: add a type signature that fixes these type variable(s)
Note: there are several potential instances:
instance Bits Int -- Defined in `Data.Bits'
instance Bits Integer -- Defined in `Data.Bits'
instance Bits GHC.Types.Word -- Defined in `Data.Bits'
一旦我添加类型签名,GHC 就会告诉我
Illegal literal in type (use -XDataKinds to enable): 32
或类似的错误。有时它会要求Kind *
等等。我认为这是我在这里缺少的一些非常基本的东西。如何创建位域?