可能重复:
Haskell类定义中的"|"是什么?
在下面(从Data.HList.HListPrelude,我如何解释这| l l' -> l''部分?
class HAppend l l' l'' | l l' -> l''
where
hAppend :: l -> l' -> l''
Run Code Online (Sandbox Code Playgroud)
它是标准Haskell(即Haskell 2010)的一部分还是扩展?
它是一个名为Functional Dependencies的扩展,你可以通过查看文件的顶部来发现它.
它基本上说l''是由l和唯一确定的l'.
它是必需的,因为它是HAppend一个多参数类型类(也是一个扩展).