Когда вы создаете синоним типа с type
, ghc/ghci будет использовать его вместо исходного типа всякий раз, когда он будет использоваться явно, но никогда не будет пытаться работать назад от предполагаемого типа до соответствующего синонима. Получение наиболее "абстрактного" синонима для типа было бы очень полезно для изучения сложных приложений и библиотек, которые определяют синонимы для стеков монады и, возможно, синонимы синонимов.
Кто-нибудь когда-либо писал такой кусок кода? Я предполагаю, что это будет откат, и это также создаст некоторые побочные кандидаты (например, если два типа являются псевдонимами String, тогда они будут кандидатами, когда String необходимо разрешить), но это может быть полезно в определенных ситуациях.