Можно ли указать компилятору GH C требовать, чтобы указанное значение c в коде имело недопустимый тип, без использования этого значения?
Надуманный пример:
data Box a = Num a => Box a
goodBoxSample :: Box Int
goodBoxSample = Box 1
-- below definition and binding are expected to fail compilation
badBoxSample :: Box String
badBoxSample = Box "foo"
Есть ли способ сообщить компилятору, что ожидается сбой badBoxSample (например, с помощью некоторой прагмы, вместо того, чтобы комментировать его как заведомо плохой образец ), так что код компилируется только , если badBoxSample не может проверить тип?
Мотивация здесь такая же, как и при написании теста (на каком-то другом языке) с кодом, который требуется создать исключение для прохождения тестового примера.