次の2つの関数の型の違いを説明していただけないでしょうか。

f :: C a => T a -> b -> b
g :: T a -> (C a => b) -> b

関数gのようなconstraintの使い方にはこのような効果や意味がある、
とはっきり説明できず、モヤモヤしています。

また、このようなconstraintの使い方には特別な用語があるのでしょうか。
webで検索して調べてはいますが、適切なキーワードが思いつかず、苦労しています。