Dhall - 记录字段上的地图

Dhall - map on record field

我有一个类型

let Resource = \(a : Type) ->
  { name : Text
  , type : Text
  , properties : a
  }

和函数 foo : InstanceTemplateProperties -> Properties.

我需要创建一个函数 Resource InstanceTemplateProperties -> Resource Properties

我可以写成

\(p : Resource InstanceTemplateProperties) ->
  { name = p.name
  , type = p.type
  , properties = foo p.properties
  } : Resource Properties

不过看起来确实很麻烦。有没有更简单、更惯用的方法来做到这一点?

您可以使用 // 将更新后的属性合并到原始属性中。

(\p : Resource InstanceTemplateProperties) ->
  p // {properties = foo p.properties)