purescript-yaml库为ToYAML
,Tuple
等简单类型定义Array
个实例。
如何获取或推导ToYAML
或Map
的{{1}}个实例?
我在某处可以看到StrMap
可以使用,但是如何使用?
答案 0 :(得分:1)
这似乎可以转换StrMap a
...
import Data.Map as M
import Data.StrMap as StrMap
instance strMapToYAML :: (ToYAML a) => ToYAML (StrMap a) where
toYAML strMap = YObject $ StrMap.fold (\acc key value ->
M.insert key (toYAML value) acc
) M.empty strMap
当前实现使用YObject
作为Map String YValue
的类型别名因此,此实例将StrMap a
转换为Map String YValue
,然后使用{{1}包装它数据构造函数。
可以类似地定义YObject
的实例,但您必须确保Map a b
可以转换为字符串,a
可以转换为{{1} }}
编辑 - 我刚刚意识到如果你尝试将它放在你自己的代码中,你会有一个孤儿实例。这需要进入核心库。您可以等待对作者的pull请求,也可以将repo分叉并将该实例添加到Data.YAML.Foreign.Encode模块。