smasuda
こんにちは。いつもお世話になります。
関数の定義で型変数を使った場合、実際にどの型が使われたかを、その関数内部で取得することはできますか? ログ出力を目的としていて、`typeOf`を使えばよいのですが、それだと冗長になるケースがありまして、お尋ねしています。
以下のケースで`f`の中で`typeOf g`とすれば`String->IO [Integer]`が取れるのですが、関心があるのは
関数の定義で型変数を使った場合、実際にどの型が使われたかを、その関数内部で取得することはできますか? ログ出力を目的としていて、`typeOf`を使えばよいのですが、それだと冗長になるケースがありまして、お尋ねしています。
以下のケースで`f`の中で`typeOf g`とすれば`String->IO [Integer]`が取れるのですが、関心があるのは
Integer
だけなので、それを取得する方法がないか探しています。g::String->IO [Integer] g = ... f::(Eq a)=>String->(String->IO [a])->IO Bool f x g = .. -- "Integerだよ"というメッセージを表示したい。