ライブラリコード書くときには可能な限り型クラス制約を弱めて多相に
利用するコードではむしろ反対に