GHC

GHC API を使ってある型コンストラクタのデータコンストラクタを得る

neco-ghc などで,Haskell 用の補完候補をより正確に計算するときに活用できないかなーと思った. GHC 7.0.3 で試した. あるモジュールがエクスポートしている名前は modInfoExports でとれる. そのモジュールで定義されていれば modInfoTyThings で TyThi…

GHCi.vim

inf-haskell.el から最低限の機能を抜き取ったかんじの Vim script 書いた. https://github.com/eagletmt/ghci-vim 使い方としては l でファイルをロードした後に,t で型を見たり i で info を見たり. vimproc のおかげで Vim からプロセスと会話できる.…

GHC API でモジュールが export している名前とその型を得る

./BrowseType Prelude のように使うと (snip) break = forall a. (a -> GHC.Bool.Bool) -> [a] -> ([a], [a]) catch = forall a. GHC.Types.IO a -> (GHC.IO.Exception.IOError -> GHC.Types.IO a) -> GHC.Types.IO a ceiling = forall a. (GHC.Real.RealFra…

ここの型を知りたい

こんなかんじに使う. % echo 'length x' | ./hint [a] % echo 'x + 1' | ./hint (GHC.Num.Num a) => a % echo 'foldl x 0 [2,3]' | ./hint (GHC.Num.Num a, GHC.Num.Num b) => a -> b -> a % echo 'nub x' | ./hint Data.List (GHC.Classes.Eq a) => [a]元…