我想在Data.Vector.Unboxed.Unbox向量中存储类似Either类型的内容。我假设我应该为&#34创建一个Unbox实例;要么是b"其中a和b是Unbox(暂时忽略孤儿问题)。这样做的最佳方法是什么?我应该以(Bool,a,b)的方式存储它吗?我更关注速度而不是太空。
答案 0 :(得分:1)
要在未装箱的结构中存储和类型,您需要使用它们的产品编码。例如。作为类型标记和值对的元组。
所以:
Unbox a, Unbox b => Either a b
-->
Unbox (Int, a, b)
使用"空的"的适当默认值a和b的插槽。