函数类型声明中的多个单词让我感到困惑

时间:2015-05-04 08:15:42

标签: haskell

我理解haskell的函数类型声明,如

length :: String -> Int
prefix :: Int -> String -> String

但有时,右侧的类型不是简单的类型,如StringInteger,但它包含多个文字,以及看起来像自定义等的单词。

例如,这些类型在this post上定义,

withLocation :: Q Exp -> Q Exp

Q,Exp是什么意思?

formatLoc :: Loc -> String

Loc的意思是什么?它是haskell库的一部分吗?

1 个答案:

答案 0 :(得分:3)

类型QExpLoc是源文件开头导入的Template Haskell模块中的类型。

Q是参数化类型,就像前奏中的MaybeIO一样,此处适用于Exp

  

如何从emacs编辑器执行goto defintion

这可以使用Scion来实现,但这对于这个用例无济于事,因为它不允许您跳转到外部库(无论如何都可能无法以源代码形式提供)。