在 DAML 中,当一个选择可能导致创建不同的新合约时 return 怎么办

In DAML, what to return when a choice could lead to different new contracts to be created

在 DAML 中,如果我有一个名为提交的选项,它可能会导致新合同 approvedRequest 或 rejectedRequest。我应该如何管理选择中的 return 值?

template Request
  with 
    content : Text
    anyone : Party
  where 
    signatory anyone

--what to return ? ApprovedRequest or RejectedRequest
    controller anyone can 
      Submit : ContractId ApprovedRequest
        do
          -- passed all the checks and approved
          create ApprovedRequest with request = Request 


也许 Maybe (ContractId ApprovedRequest) 会在这里工作?或者,也许 Either (ContractId RejectedRequest, ContractId ApprovedRequest)?