使用`generics-sop`推导投影函数

我将如何推导函数

getField :: (Generic a, HasDatatypeInfo a) => Proxy (name :: Symbol) -> a -> b

使用类型级字符串 ( Symbol),使用generics-sop库从任意记录中投影字段?

这类似于在通用 SOP 中检索记录功能,但我有以下问题:

  • OP 没有解释如何走最后一英里来获得我想要的签名。
  • OP 定义了复杂的特殊用途助手类型,我很想避免这些类型
  • 给定的解决方案仅在运行时出错,但编译时匹配应该是可能的,因为类型级别DataTypeInfo是通过DatatypeInfoOf类型系列提供的(很好,但不是必需的)。

lens-sop软件包似乎也做了类似的事情,但我不知道如何让它对我有用。

我也更喜欢使用IsProductType类型类的解决方案。

以上是使用`generics-sop`推导投影函数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>