我已经在几个地方看到过这个'[]
和':
语法,尤其是在HList或HVect等异构列表包中。
例如,异质向量HVect
定义为
data HVect (ts :: [*]) where
HNil :: HVect '[]
(:&:) :: !t -> !(HVect ts) -> HVect (t ': ts)
在 GHCi 中,带有扩展名TemplateHaskell
or DataKinds
,我得到了这个
> :t '[]
'[] :: template-haskell-2.13.0.0:Language.Haskell.TH.Syntax.Name
> :t '(:)
'(:) :: template-haskell-2.13.0.0:Language.Haskell.TH.Syntax.Name
我的印象是这与依赖类型和种类等有关,与模板 haskell 无关。
搜索引擎,以及hoogle和hayoo处理查询的方式'[]
或':
相当糟糕,因此问题是:这些'[]
和':
事物的名称是什么?指向文档或教程的指针将是最受欢迎的。