我对 Haskell 比较陌生,并试图通过使用 Yesod 框架构建网站来获得一些经验。我现在面临的最大困难是我经常不确定一个函数需要什么类型,或者另一个函数返回什么类型。我也很难解释我犯错时产生的类型错误。
特别是,我希望能够做以下事情,但我目前不知道做这些事情的好方法。
- 给定一个表达式,找出表达式的类型。通常我会使用 GHCi 来做这样的事情,但据我所知,如果我想这样做,我需要知道表达式的每个部分来自哪个包,我不知道该怎么做。我还希望能够检查从模板 Haskell 生成的函数的类型,例如 HomeR。有没有办法使用 GHCi 检查出现在 Yesod 项目的 .hs 文件中的任意表达式的类型或求值?
- 与上述相同,给定出现在 Yesod 项目的某个 .hs 文件中的类型或类,得到它的定义吗?
- 给定一个 Yesod 函数或类型,快速找到它的文档。我目前所做的是在谷歌上搜索给定的函数,但这有点烦人,因为第一个结果并不总是文档,有时它是旧版本的。有没有一种快速查找 Yesod 文档的有效方法?