我理解haskell的函数类型声明,如
length :: String -> Int
prefix :: Int -> String -> String
但有时,右侧的类型不是简单的类型,如String
,Integer
,但它包含多个文字,以及看起来像自定义等的单词。
例如,这些类型在this post上定义,
withLocation :: Q Exp -> Q Exp
Q,Exp是什么意思?
formatLoc :: Loc -> String
Loc的意思是什么?它是haskell库的一部分吗?
答案 0 :(得分:3)
类型Q
,Exp
和Loc
是源文件开头导入的Template Haskell模块中的类型。
Q
是参数化类型,就像前奏中的Maybe
或IO
一样,此处适用于Exp
。
如何从emacs编辑器执行
goto defintion
?
这可以使用Scion来实现,但这对于这个用例无济于事,因为它不允许您跳转到外部库(无论如何都可能无法以源代码形式提供)。