@@ -137,8 +137,9 @@ typeClassDictionaryDeclaration name args implies members =
137137 , let tySynApp = foldl TypeApp (TypeConstructor superclass) tyArgs
138138 , let fieldName = mkSuperclassDictionaryName superclass index
139139 ], REmpty))
140−
141− in TypeSynonymDeclaration name args (TypeApp tyObject $ rowFromList ((C.__superclasses, superclassesType) : map (first identToProperty . memberToNameAndType) members, REmpty))
140+ members' = map (first identToProperty . memberToNameAndType) members
141+ mtys = if null implies then members' else (C.__superclasses, superclassesType) : members'
142+ in TypeSynonymDeclaration name args (TypeApp tyObject $ rowFromList (mtys, REmpty))
142143
143144typeClassMemberToDictionaryAccessor :: ModuleName -> ProperName -> [String] -> Declaration -> Declaration
144145typeClassMemberToDictionaryAccessor mn name args (TypeDeclaration ident ty) =
@@ -187,7 +188,7 @@ typeInstanceDictionaryDeclaration name mn deps className tys decls =
187188 , let fieldName = mkSuperclassDictionaryName superclass index
188189 ]
189190
190− let memberNames' = (C.__superclasses, superclasses) : memberNames
191+ let memberNames' = if null implies then memberNames else (C.__superclasses, superclasses) : memberNames
191192 dictTy = foldl TypeApp (TypeConstructor className) tys
192193 constrainedTy = quantify (if null deps then function unit dictTy else ConstrainedType deps dictTy)
193194 dict = if null deps then Abs (Left (Ident "_")) (ObjectLiteral memberNames') else ObjectLiteral memberNames'