foo >>= bar
としたときに実際に>>=がどのインスタンスに定義されている>>=の処理を行うのか、
というのはどうやって決まるんでしょうか?