Я знаю, что могу вызвать ошибку во время компиляции, вызвав fail
из соединения, но возможно ли генерировать только предупреждение? В частности, я хотел бы, чтобы при компиляции с -Werror
.
было возможно превратить это предупреждение в ошибку.
По сути, я пытаюсь сделать следующее:
todo :: Q Exp
todo = do
-- emit warning somehow
loc <- location
let message = ... -- generate message based on loc
[| error $(litE (stringL message)) |]
Идея состоит в том, чтобы использовать это вместо undefined
во время кодирования, но убедитесь, что оно не проникло в производственный код, компилируя с -Werror
.
myFunc x | isSimpleCase x = 42
| otherwise = $todo