Я считаю, что проверка типа GADT всегда разрешима; это вывод, который неразрешим, так как требует объединения более высокого порядка. Но средство проверки типа GADT является ограниченной формой проверочных устройств, которые вы видите, например. Coq, где конструкторы строят проверочный член. Например, классический пример встраивания лямбда-исчисления в GADT имеет конструктор для каждого правила сокращения , поэтому, если вы хотите найти нормальную форму термина, вы должны указать ему, какие конструкторы помогут вам Это. Проблема остановки была передана в руки пользователя: -)