->
との違いは何=>
ですか? 関数の宣言で?
foobar :: Integer -> Integer -> [Integer]
->
関数テイク用です。署名は、「 を受け取り、 を返すx -> y
関数」を意味します。x
y
=>
クラスを扱うためのものです。タイプ シグネチャごとに 1 回だけ表示できます。その左側のものは「コンテキスト」であり、どのタイプがどのクラスのインスタンスである必要があるかをリストしています。右側のものは通常のタイプの署名です。
たとえば、は数値型である必要があり、表示可能な型である必要がある(Num x, Show y) => x -> y -> String
ことを示します。x
y
Type Constraintsについて読んでください。
基本的に、型には型 class のインスタンスが必要であることをfoo :: (X a) => a -> b
意味します。a
X