0

我真的很想使用 Dhall lang 来解决我在使用 Github Terraform Provider 时遇到的问题。

见:https ://github.com/etaty/example-dhall-terraform-github

但是,我以前从未使用过 Dhall,并且实际上只有一个用例可以使用它。

我想调试我在这个 github repo 中遇到的错误以创建 github.tf 文件。

我得到的错误如下:

Error: Invalid type for ❰List❱

63│                        [] : Optional (List a)
64│

我在下面包含了第 63 行以及引用了此错误的位置。我上网对此做了很多研究,但是我没有取得任何成功。

in let emptyListToOptional = \(a: Type) -> \(l: List a) ->
    if (null a l) then [] : List Natural , Optional (List a)
    else [l] : List Natural, Optional (List a)

in let build = \(config: T.Config) ->
        let github_membership = map T.GithubUser T.TF/GithubMembership makeGithubMembership config.users
    in let github_team = map T.Team T.TF/GithubTeam makeGithubTeam config.teams
    in let github_team_membership = concat T.TF/GithubTeamMembership (map T.GithubUser (List T.TF/GithubTeamMembership) makeGithubTeamMembership config.users)
    in {
          github_membership = emptyListToOptional T.TF/GithubMembership github_membership
        , github_team = emptyListToOptional T.TF/GithubTeam github_team
        , github_team_membership = emptyListToOptional T.TF/GithubTeamMembership github_team_membership
    }

in {

任何帮助将不胜感激!

4

1 回答 1

3

您链接的代码已过期;您指定Optional值的方式已更改。例如,线条

in let emptyListToOptional = \(a: Type) -> \(l: List a) ->
    if (null a l) then [] : List Natural , Optional (List a)
    else [l] : List Natural, Optional (List a)

最初是(来自存储库)

in let emptyListToOptional = \(a: Type) -> \(l: List a) ->
    if (null a l) then [] : Optional (List a)
    else [l]: Optional (List a)

现在应该读

in let emptyListToOptional = \(a: Type) -> \(l: List a) ->
    if (null a l) then None (List a)
    else Some l
于 2020-05-09T01:09:21.767 回答