什么是`... | 在类型类声明中ab - > c`是什么意思?

Eri*_*ikR 4 haskell typeclass

可能重复:
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)的一部分还是扩展?

Pub*_*bby 8

它是一个名为Functional Dependencies的扩展,你可以通过查看文件的顶部来发现它.

它基本上说l''是由l和唯一确定的l'.

它是必需的,因为它是HAppend一个多参数类型类(也是一个扩展).

  • 这可能听起来有些讽刺,但如果不清楚何时他说"你可能已经通过查看文件的顶部来弄清楚了." 他指的是第一行通常是这样的:`{ - #LANGUAGE ...一些扩展...# - } (5认同)