Dhall Lang无效的列表类型

时间:2020-05-09 00:14:32

标签: json github terraform dhall

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

请参阅:https://github.com/etaty/example-dhall-terraform-github

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

我想调试在此github存储库中创建的错误,以创建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 {

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分: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