プロジェクトまたは cabal の依存関係で定義されている関数/クラスなどのghci ( Acid 上の lambdabot 2.5 GHCi を使用)でソース定義を表示するにはどうすればよいですか? たとえば、私が持っているとします:
module Main where
import System.Random
gen = (random (mkStdGen 0)) :: (Bool,StdGen)
myadd :: Int -> Int
myadd x = 2 * x
main = do
print "finished"
その後、情報を取得できmyadd
ますrandom
が、ソースを印刷できません。これがghciでできることです(ラムダボットを使用):
*Main GOA> :src foldr
foldr f z [] = z
foldr f z (x:xs) = f x (foldr f z xs)
*Main GOA> :i myadd
myadd :: Int -> Int -- Defined at test.hs:7:1
*Main GOA> :src myadd
Source not found. I don't think I can be your friend on Facebook anymore.
*Main GOA> :i random
class Random a where
...
random :: RandomGen g => g -> (a, g)
...
-- Defined in ‘System.Random’
*Main GOA> :src random
Source not found. Listen, broccoli brains, I don't have time to listen to this trash.
foldr
lambdabotは、プロジェクトで定義されているmyadd
関数 ( ) または cabal 依存関係 ( ) で定義されている関数の定義を出力できるようrandom
です。
lambdabot のいくつかの機能を使用して、myadd
や などの定義を出力することはできますか? random
Hoogle を使用できることは知っていますが、random
ghci または lambdabot を使用してソース定義を出力する方法があるかどうかを具体的に知りたいです。
[編集]
投稿してから、Emacs/Inferior Haskell プロセスを発見し、それらの機能のいくつかは上記のいくつかを達成しているようです。