PartialTypeSignatures
型シグネチャ内にワイルドカード(
_
)を書ける
GHC拡張
PartialTypeSignaturesは型シグネチャ部分にワイルドカードを使える
型はそもそも全く書かなくても(多くの場合)型推論されるので常にエラーが生じるわけではない
型シグネチャを全く書かないことと、PartialTypeSignaturesを使うことの違いは?
hs-- これと
f x = x + 1
-- これの違い
f :: Integer -> _
f x = x + 1
型シグネチャを書かない場合は、型全てを推論させることになる
上記の例の場合、 f :: Num a => a -> a
と推論される
一方で、PartialTypeSignaturesは、部分的にプログラマが指定し、残りは推論させる
上記の例の場合、 f :: Integer -> Integer
と推論される
プログラマが指定する範囲を自由に決められることを意味する
これ読めばわかる

3種類ある
型のワイルドカード
型制約のワイルドカード
型のワイルドカードの例
hsnot' :: Bool -> _
not' x = not x
Bool -> Bool
と推論される
型制約のワイルドカードの例
hshandleFetchAction :: _ => Text -> _
handleFetchAction url = do
documentBody <- do
response <- Wreq.get (cs url)
pure (response ^. Wreq.responseBody)
renderPlain (cs documentBody)
PartialTypeSignaturesが有効な場合は警告を表示するが、その警告を消す