型別名は必ず全部の引数について適用されてないといけませんか?
次のようなコードにおいて F 0
の定義をしたいのですが、下に示すエラーによってコンパイルできません。
型別名は必ず全部の引数について適用されてないといけませんか?
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
import Data.Kind (Type)
import GHC.TypeLits (Nat)
type family F (n :: Nat) :: Type -> Type
type instance F 0 = T0
type T0 a = ()
main :: IO ()
main = pure ()
• The type synonym ‘T0’ should have 1 argument, but has been given none
• In the type instance declaration for ‘F’
|
9 | type instance F 0 = T0
|
- GHC 8.4.2
- 実行例