Моя проблема в последней строке:
module A where
data A = A { f :: Int }
defaultA = A { f = 0 }
и
module B where
import A as A
data B = B { f :: Int }
bToA :: B -> A
bToA x = defaultA { A.f = f x }
дает
B.hs:8:26:
Ambiguous occurrence `f'
It could refer to either `B.f', defined at B.hs:5:13
or `A.f', imported from A at B.hs
Поскольку я не могу включить в себя квалифицированную букву B, есть ли альтернатива для разрешения конфликта имен? Я бы не стал переименовывать функцию столкновения.
Редактировать: обновлены примеры.