Может ли GHC предупредить об использовании опасных неосновных функций?

Я быстро писал код в Haskell и использовал опасную неточную функцию, а именно fromJust (где я ожидаю значение от ввода). Позже я подумаю, какой стиль обработки ошибок я хочу использовать.

Может ли GHC помочь мне удостовериться, что я избавился от всех видов использования опасных нетопливных функций (например, fromJust или head, которые могут произойти сбой), предоставьте мне предупреждения, где они есть.

Ответ 1

GHC может предупреждать об определениях с частичными шаблонами с помощью -fwarn-incomplete-patterns (хотя и не предупреждает об использовании значений, которые включают неполные шаблоны). Кроме того, Neil Mitchell catch пытается немного более подробный анализ для определения безопасных и небезопасных вызовов частичных функций. (Хотя, конечно, это неразрешимая проблема в целом, поэтому она не всегда будет прав!)