[Haskell] Type inference and principal typings for record concatenation and mixin modules