予想通り、これはうまくいきます:
foo :: Fractional a => a
foo = undefined -- datum
bar :: Num a => a -> a
bar a = undefined -- function
baz :: Fractional a => a
baz = bar foo -- application
everyFractionalも . であるため、これは期待どおりに機能しNumます。
したがって、予想どおり、Fractional引数をNumパラメーターに渡すことができます。
一方、以下も機能します。理由がわかりません。
foo :: Fractional a => a -> a
foo a = undefined -- function
bar :: Num a => a
bar = undefined -- datum
baz :: Fractional a => a
baz = foo bar -- application
意外と効く!ではないものがあり ます。NumFractionals
では、なぜNum引数をFractionalパラメーターに渡すことができるのでしょうか? 説明できますか?