在DAML中是否有一个通用参数可以选择,而模板本身不是通用的?

时间:2019-09-05 15:09:50

标签: generics daml

在我的模型中,我试图定义一个非通用模板,该模板具有一个采用通用参数的选择。我不知道该怎么做。可能吗如果没有,为什么?

1 个答案:

答案 0 :(得分:1)

这是不可能的,故意这样做。 DAML的设计原则之一是,当您签订合同时,您会确切地知道您所同意的内容。

想象一下,资产有一个类型类Transferrable,我发布了一个包含一个空类型类Stealable和模板PermissionToSteal的包:

class (Template a, Transferrable a) => Stealable a where

template PermissionToSteal
  with
    owner : Party
    thief : Party
  where
    signatory owner, thief

    controller thief can
    (Stealable a) => Steal : (ContractId a)
      with
        asset : a
      do
        transfer asset thief

我可以说服您签署owner这样的合同,因为您在没有Stealable实例的情况下感到安全。

但是如果我现在上传另一个带有instance Stealable Cash的软件包怎么办?