Ответ 1
GHC этого не делает, и быстрый поиск Hackage ничего не вызывает.
Простым, но, возможно, довольно эффективным способом реализации такой вещи было бы загрузить модуль в GHCi, использовать :browse
для получения всех подписей типа, затем загрузить копию без каких-либо подписей типа, использовать :browse
снова, и сравнить два выхода; затем просто распечатайте все строки, которые отличаются вне круглых скобок, пробелов и альфа-переименования. Однако это не сработает отлично, особенно если у вас есть определения, типы которых не могут быть выведены.
У меня такое чувство, что такой инструмент на практике проявит много ложных срабатываний.