ありがとうございます。
きっちり型が制限されてないときだけ()=>を使います。

けど、どう言うときに「型がきっちり制限されている」のか分かるのでしょうか?[a]がElemとかShowとかが必要な時?
持ってる本(introduction to functional programming language using haskell)では良く分からなかったので。