Есть ли инструмент, который позволяет вам аннотировать функции/методы как «чистые», а затем анализировать код, чтобы проверить, не имеют ли указанные функции/методы побочных эффектов?