Рассмотрим следующий фрагмент кода:
blah :: a -> b -> a
blah x y = ble x where
ble :: b -> b
ble x = x
Это компилируется под GHC, что по существу означает, что b
из третьей строки отличается от b
от первой строки.
Мой вопрос прост: существует ли способ как-то связать объявление типа ble
с типом, используемым во внешнем контексте, то есть объявлением типа blah
?
Очевидно, что это всего лишь пример, а не реальный случай использования для деклараций типов.