3
我明白我可以促進Bool
那種水平,像這樣,在Bool
有可能成爲True
或False
:數據類型是提升爲那種級別只有一個值
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
type family TF t :: Bool
type instance TF Int = True
type instance TF Bool = False
我想,而不是促進()
當然這隻有一個值()
。但是,這似乎並沒有工作:
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
type family TF t ::()
type instance TF Int =()
type instance TF Bool =()
我想我可以只使用Bool
和True
,但有一個有價值的類型,可晉升爲樣的水平?
感謝。只是好奇,是「真」還是「假」,或者我可以同樣定義'()'? – Clinton
@Clinton'True'和'False'是''True'和''False'的類型同義詞,爲方便起見'DataKinds'語言擴展定義。對於Bool來說是可以的,但是當類型和構造函數具有相同的名稱時會有歧義,因此通常可選的單引號是必需的。 – zakyggaps
甚至有第五個「()」造成額外的混亂:空的約束。 – dfeuer