Они были реализованы в Idris 0.9.14, и я успешно использовал induction
для некоторых доказательств. Однако они работают только для некоторых типов библиотек; в то время как, например, Vect
поддерживает их, почти изоморфный All
- нет:
-Main.h2> induction ys1 INTERNAL ERROR: induction needs an eliminator for Data.Vect.Quantifiers.All
This is probably a bug, or a missing error message.
Please consider reporting at https://github.com/idris-lang/Idris-dev/issues
К сожалению, документации по языку не так много, и я не смог найти, как реализовать анализ исключений/вариантов для пользовательских типов. Копаясь в Prelude, я нашел модификатор %elim
, но это не помогло. Может ли кто-нибудь привести пример, скажем, для вышеупомянутого All
?