@@ -26,20 +26,19 @@ import Language.PureScript.Names
2626
2727desugarObjectConstructors :: Module -> Module
2828desugarObjectConstructors (Module mn ds exts) = Module mn (map desugarDecl ds) exts
29−
30−desugarDecl :: Declaration -> Declaration
31−desugarDecl d =
32− let (f, _, _) = everywhereOnValues id desugarExpr id
33− in f d
34−
35−desugarExpr :: Expr -> Expr
36−desugarExpr (ObjectConstructor ps) =
37− let (props, args) = partition (isJust . snd) ps
38− in if null args
39− then ObjectLiteral $ second fromJust `map` props
40− else foldr (Abs . Left . Ident . fst) (ObjectLiteral (mkProp `map` ps)) (reverse args)
41−desugarExpr e = e
42−
43−mkProp :: (String, Maybe Expr) -> (String, Expr)
44−mkProp (name, Just e) = (name, e)
45−mkProp (name, Nothing) = (name, Var (Qualified Nothing (Ident name)))
29+ where
30+
31+ desugarDecl :: Declaration -> Declaration
32+ (desugarDecl, _, _) = everywhereOnValues id desugarExpr id
33+
34+ desugarExpr :: Expr -> Expr
35+ desugarExpr (ObjectConstructor ps) =
36+ let (props, args) = partition (isJust . snd) ps
37+ in if null args
38+ then ObjectLiteral $ second fromJust `map` props
39+ else foldr (Abs . Left . Ident . fst) (ObjectLiteral (mkProp `map` ps)) args
40+ desugarExpr e = e
41+
42+ mkProp :: (String, Maybe Expr) -> (String, Expr)
43+ mkProp (name, Just e) = (name, e)
44+ mkProp (name, Nothing) = (name, Var (Qualified Nothing (Ident name)))