最近はあまり話題になってないかもしれませんが、 Typed holes 機能についての紹介です。
ghc7.8くらいの頃に導入された機能で、ソースコードの式の中に _ か _ で始まる識別名を書くと、その部分の型を推論してくれます。
Contents
Link to
here使い方
例えば、
main = print $ 1.0 + _のようなコードを書いて、 runghcやghciやghcで実行すると、 _ 部の型をエラーメッセージで教えてくれます。
Link to
hereエラーメッセージの表示例
例えば、以下のようにエラーメッセージが表示されます。 以下の例では、_部が、Double型であることを示しています。
$ runghc test1.hs 
test1.hs:3:22: error:
    • Found hole: _ :: Double
    • In the second argument of ‘(+)’, namely ‘_’
      In the second argument of ‘($)’, namely ‘1.0 + _’
      In the expression: print $ 1.0 + _
    • Relevant bindings include main :: IO () (bound at test1.hs:3:1)
  |
3 | main = print $ 1.0 + _
  |                      ^Link to
here補足1
_ の替りに、 _hoge のように名前付けしても構いません。
ghci で、 :t で型を調べるのと同じように気軽に使えます。 (最近はIDEがサポートしていて、明示的には使わなかったりするかもしれません。)
Link to
here補足2
詳細情報は以下にあります。