#371 handle-likeでインスタンスを別モジュールにしない

インスタンスを別モジュールにするのは一見便利そうに見えるが、
その実、大きな危険をはらんでいる。
Aモジュールがある型に対してひとつのインスタンス宣言を作成し、
Bモジュールが同じその型に対して別のインスタンス宣言を作成した場合、
この2つのモジュールを同時に使うことが不可能になってしまう。
これは実際のところHaskell自体のバグと言えるが、
現在のところ、すくなくともライブラリでは、orphan instanceを作らないことで、
回避するしかない。
orphan instanceと同様のことは明示的にnewtypeを作成することで行う必要がある。