使用`generics-sop`推导投影函数
我将如何推导函数
getField :: (Generic a, HasDatatypeInfo a) => Proxy (name :: Symbol) -> a -> b
使用类型级字符串 ( Symbol),使用generics-sop库从任意记录中投影字段?
这类似于在通用 SOP 中检索记录功能,但我有以下问题:
- OP 没有解释如何走最后一英里来获得我想要的签名。
- OP 定义了复杂的特殊用途助手类型,我很想避免这些类型
- 给定的解决方案仅在运行时出错,但编译时匹配应该是可能的,因为类型级别
DataTypeInfo是通过DatatypeInfoOf类型系列提供的(很好,但不是必需的)。
该lens-sop软件包似乎也做了类似的事情,但我不知道如何让它对我有用。
我也更喜欢使用IsProductType类型类的解决方案。