x здесь типа T1, а (A y) типа T2. Т1 - это абстракция, а T2 - представление этой абстракции, перевод в это представление через комбинатор g. При изменении абстракции меняются только сама абстракция и комбинатор перевода в представление. Функция f не меняется.
Т.е. Т1 мы всё таки скрываем и при этом при изменении правим только один модуль.
no subject
f x | A y <- g x
x здесь типа T1, а (A y) типа T2. Т1 - это абстракция, а T2 - представление этой абстракции, перевод в это представление через комбинатор g. При изменении абстракции меняются только сама абстракция и комбинатор перевода в представление. Функция f не меняется.
Т.е. Т1 мы всё таки скрываем и при этом при изменении правим только один модуль.