True type S :: * data S = MkS {Ghci1.foo :: Int} -- Defined at :3:16 type T :: * -> * data T a = MkT {Ghci2.foo :: Bool, ...} -- Defined at :4:18 :1:1: error: Ambiguous occurrence ‘foo’ It could refer to either the field ‘foo’, defined at :3:16 or the field ‘foo’, defined at :4:18 :9:1: error: Ambiguous occurrence ‘foo’ It could refer to either the field ‘foo’, defined at :3:16 or the field ‘foo’, defined at :4:18 True :1:1: error: Ambiguous occurrence ‘foo’ It could refer to either the field ‘foo’, defined at :3:16 or the field ‘foo’, defined at :4:18 foo :: U -> Int 42