我正在调查Hana,我惊讶地发现它有一个type
的概念(一个"类型的容器"排序,类似于一个 - 元素元组没有实际值),但types(type
的序列)是一个实验性特征。
有谁知道为什么?关于类型列表而不是单个类型的容器有什么问题?
答案 0 :(得分:3)
答案基本上就是杰森所说的:
我希望将类型视为
hana::Sequence
,但它不会通过法律,因为它不会保留任何类型的值(如运行时状态的值)
"问题"是hana::types
无法成为hana::Sequence
,因为hana::Sequence
应该能够保存任意内容,而不仅仅是类型。虽然这看起来似乎没什么大不了的,但事实上确实如此。例如,我们也无法满足hana::Monad
,因为这需要hana::flatten
,其签名为M<M<T>> -> M<T>
,适用于任意hana::Monad
M
。由于hana::types
只能包含类型,因此您不能拥有hana::types<hana::types<int, char>, hana::types<float, long>>
没有特殊的整体内容。
无论解决方案是什么,我都希望找到一种不会破坏Hana概念完整性的解决方案,同时仍然允许更多编译时效率类型列表。