什么是[(类型,类型)]种类的居民?

lan*_*ndo 3 haskell types ghc type-level-computation

在ghci(8.2)上,

:k ('[] :: [(Type,Type)]) 
Run Code Online (Sandbox Code Playgroud)

成功,但是

:k ('[(Bool,Bool)] :: [(Type,Type)]) 
Run Code Online (Sandbox Code Playgroud)

不,因为(Bool,Bool)(甚至像('True,False')这样的东西都有种类*.

我理解问题在于(,)构造函数,它构造了一个*Type.

表示类型级强类型对的列表的方法是什么?

And*_*ács 9

你遗漏了一个反击,:k ('[ '(Bool,Bool)] :: [(Type,Type)])工作.你需要提升的元组构造函数和提升的列表构造函数.

  • 这是对的.重要的是要记住''[`和''(...,...)`之间的差距.如果没有额外的空间,解析器会看到字符''''并且感到困惑. (5认同)