ここの型を知りたい
こんなかんじに使う.
% 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]
元ネタは
GHC APIにLHsExpr,TyThingがあるので、f ? a bっていう式の?の型が知りたい!!ってときに\x -> f x a bと変形し型を推論させたTyThingからxに相当する部分を取り出すことでagda2-modeの?みたいなものを作れそうですね
http://twitter.com/hogehogefoobar/status/13598939209
これなんだけど,f ? a b を \x -> f x a b に変形する方法がわからなかったので,\x -> f x a b の状態で x の型を表示するようにしてみた.