3
說我有這樣的:Haskell的DataKinds和價值觀,類型的關係和種類
data Animal = Dog | Cat
:t Dog
Dog :: Animal
很公平。
:k Dog
<interactive>:1:1:
Not in scope: type constructor or class ‘Dog’
A data constructor of that name is in scope; did you mean DataKinds?
由於Dog是一種價值,而不是一種類型,所以並沒有期待它的效果。你不能得到某種價值,只能是一種類型,對吧?
但是,如果我這樣做:
:set -XDataKinds
data Animal = Dog | Cat
:k Dog
Dog :: Animal
這是什麼意思,你可以得到一個樣的價值呢?
一些,這是坐落在GHC 8.0,在類型和種類將在內部合併改變。 –