Есть ли веская причина для запуска typechecker? Казалось бы, typechecker был бы намного проще, если бы он работал с меньшим синтаксисом, особенно потому, что с текущей системой каждое расширение синтаксиса должно касаться typechecker. Этот вопрос применим, в частности, к синтаксису стрелок, определение типов, которое как описано в комментариях здесь, является фиктивным.
Я предполагаю, что одна из причин этого не будет испускать ошибки, указывающие на сгенерированный код, но эта ситуация уже рассмотрена в случаях, когда предложение deriving
не работает с typecheck; GHC знает, что код был сгенерирован.