型境界調整
resolveOpitonを分離
scaladoc