Понимание этого определения HList
Я относительно новичок в Хаскеле, и я пытаюсь понять одно из определенийHList.
data instance HList '[] = HNil
newtype instance HList (x ': xs) = HCons1 (x, HList xs)
pattern HCons x xs = HCons1 (x, xs)
У меня есть пара конкретных вопросов:
Что'[]
а также(x ': xs)
синтаксис я вижу? Похоже, что это сопоставление с образцом для параметров типа variadic, но я никогда раньше не видел этот синтаксис, и я не знаком с параметрами типа variadic в Haskell. Я думаю, это частьТип семьи GHC, но я не вижу ничего об этом на связанной странице, и довольно сложно найти синтаксис в Google.
Есть ли смысл использоватьnewtype
объявление с кортежем (вместоdata
объявление с двумя полями) кроме того, чтобы избежать боксаHCons1
?