この定義は冗長だった
anywhere の実装がクズかったのでできるだけ一般的にした
いろいろと汎用的にした