@@ -185,7 +185,7 @@ data Cpp
186 -- An object literal
186 -- An object literal
188− | CppObjectLiteral [(String, Cpp)]
188+ | CppObjectLiteral CppObjectType [(String, Cpp)]
190 -- An general property accessor expression (property, expr)
190 -- An general property accessor expression (property, expr)
@@ -297,7 +297,7 @@ everywhereOnCpp f = go
297 go (CppArrayLiteral cpp) = f (CppArrayLiteral (map go cpp))
297 go (CppArrayLiteral cpp) = f (CppArrayLiteral (map go cpp))
298 go (CppDataLiteral cpp) = f (CppDataLiteral (map go cpp))
298 go (CppDataLiteral cpp) = f (CppDataLiteral (map go cpp))
299 go (CppIndexer j1 j2) = f (CppIndexer (go j1) (go j2))
299 go (CppIndexer j1 j2) = f (CppIndexer (go j1) (go j2))
300− go (CppObjectLiteral cpp) = f (CppObjectLiteral (map (fmap go) cpp))
300+ go (CppObjectLiteral t cpp) = f (CppObjectLiteral t (map (fmap go) cpp))
301 go (CppAccessor prop j) = f (CppAccessor (go prop) (go j))
301 go (CppAccessor prop j) = f (CppAccessor (go prop) (go j))
302 go (CppFunction name args rty qs j) = f (CppFunction name args rty qs (go j))
302 go (CppFunction name args rty qs j) = f (CppFunction name args rty qs (go j))
303 go (CppLambda cps args rty j) = f (CppLambda cps args rty (go j))
303 go (CppLambda cps args rty j) = f (CppLambda cps args rty (go j))
@@ -328,7 +328,7 @@ everywhereOnCppTopDownM f = f >=> go
328 go (CppArrayLiteral cpp) = CppArrayLiteral <$> traverse f' cpp
328 go (CppArrayLiteral cpp) = CppArrayLiteral <$> traverse f' cpp
329 go (CppDataLiteral cpp) = CppDataLiteral <$> traverse f' cpp
329 go (CppDataLiteral cpp) = CppDataLiteral <$> traverse f' cpp
330 go (CppIndexer j1 j2) = CppIndexer <$> f' j1 <*> f' j2
330 go (CppIndexer j1 j2) = CppIndexer <$> f' j1 <*> f' j2
331− go (CppObjectLiteral cpp) = CppObjectLiteral <$> traverse (sndM f') cpp
331+ go (CppObjectLiteral t cpp) = CppObjectLiteral t <$> traverse (sndM f') cpp
332 go (CppAccessor prop j) = CppAccessor prop <$> f' j
332 go (CppAccessor prop j) = CppAccessor prop <$> f' j
333 go (CppFunction name args rty qs j) = CppFunction name args rty qs <$> f' j
333 go (CppFunction name args rty qs j) = CppFunction name args rty qs <$> f' j
334 go (CppLambda cps args rty j) = CppLambda cps args rty <$> f' j
334 go (CppLambda cps args rty j) = CppLambda cps args rty <$> f' j
@@ -355,7 +355,7 @@ everythingOnCpp (<>) f = go
355 go j@(CppArrayLiteral cpp) = foldl (<>) (f j) (map go cpp)
355 go j@(CppArrayLiteral cpp) = foldl (<>) (f j) (map go cpp)
356 go j@(CppDataLiteral cpp) = foldl (<>) (f j) (map go cpp)
356 go j@(CppDataLiteral cpp) = foldl (<>) (f j) (map go cpp)
357 go j@(CppIndexer j1 j2) = f j <> go j1 <> go j2
357 go j@(CppIndexer j1 j2) = f j <> go j1 <> go j2
358− go j@(CppObjectLiteral cpp) = foldl (<>) (f j) (map (go . snd) cpp)
358+ go j@(CppObjectLiteral _ cpp) = foldl (<>) (f j) (map (go . snd) cpp)
359 go j@(CppAccessor j1 j2) = f j <> go j1 <> go j2
359 go j@(CppAccessor j1 j2) = f j <> go j1 <> go j2
360 go j@(CppFunction _ _ _ _ j1) = f j <> go j1
360 go j@(CppFunction _ _ _ _ j1) = f j <> go j1
361 go j@(CppLambda _ _ _ j1) = f j <> go j1
361 go j@(CppLambda _ _ _ j1) = f j <> go j1