これはリファクタリングの議論に似てる
仕様を一切変更することなく実装を変更するのは不可能

同様に、純粋でない道具を一切使わずに純粋な関数を作るのは不可能
ここで道具を使うというのは仕様を使ってるのか実装を使ってるのかで混乱しやすい