@@ -114,20 +114,24 @@ encodeTuple a b maybeC =
114 return $ Opt.Call encoder [ Opt.VarLocal arg ]
114 return $ Opt.Call encoder [ Opt.VarLocal arg ]
116 do list <- encode "list"
116 do list <- encode "list"
117+ identity <- Names.registerGlobal ModuleName.basics N.identity
117 arg1 <- encodeArg "a" a
118 arg1 <- encodeArg "a" a
118 arg2 <- encodeArg "b" b
119 arg2 <- encodeArg "b" b
120− Opt.Function [N.dollar] <$>
121− let_ "a" Index.first <$>
122− let_ "b" Index.second <$>
123− case maybeC of
121+ case maybeC of
124− Nothing ->
122+ Nothing ->
123+ return $ Opt.Function [N.dollar] $
124+ let_ "a" Index.first $
125+ let_ "b" Index.second $
125− return $ Opt.Call list [ arg1, arg2 ]
126+ Opt.Call list [ identity, Opt.List [ arg1, arg2 ] ]
127− Just c ->
128+ Just c ->
128− do arg3 <- encodeArg "c" c
129+ do arg3 <- encodeArg "c" c
130+ return $ Opt.Function [N.dollar] $
131+ let_ "a" Index.first $
132+ let_ "b" Index.second $
129− return $ let_ "c" Index.third $
133+ let_ "c" Index.third $
130− Opt.Call list [ arg1, arg2, arg3 ]
134+ Opt.Call list [ identity, Opt.List [ arg1, arg2, arg3 ] ]