--- /dev/null
+Desugared:
+{- plain CoRec -}
+MapPairs.mappairs :: for all d, e, f. (d -> e -> f) -> [d] -> [e] -> [f]
+MapPairs.mappairs =
+ /\ t109 t112 t105 -> \ f.146 ds.147 ys.148 ->
+ let
+ fail.149 =
+ (error [t105])
+ "\"ds005.hs\", line 10: pattern-matching failure [function binding]\n"S
+ in
+ case ds.147 of {
+ Nil -> Nil! t105
+ (:) x.150 xs.151 ->
+ case ys.148 of {
+ Nil -> let f.152 = f.146 in Nil! t105
+ (:) y.153 ys.154 ->
+ let xs.155 = xs.151 in
+ let x.156 = x.150 in
+ let f.157 = f.146
+ in
+ (: t105)
+ (f.157 x.156 y.153)
+ ((((MapPairs.mappairs t109) t112) t105)
+ f.157 xs.155 ys.154)
+ }
+ }
+{- end plain CoRec -}
+{- plain CoRec -}
+MapPairs.mappairs' :: for all d, e, f. (d -> e -> f) -> [d] -> [e] -> [f]
+MapPairs.mappairs' =
+ /\ t133 t136 t129 -> \ f.162 ds.163 ys.164 ->
+ let
+ fail.165 =
+ (error [t129])
+ "\"ds005.hs\", line 15: pattern-matching failure [function binding]\n"S in
+ let
+ fail.174 =
+ let
+ fail.171 =
+ case ds.163 of {
+ (:) x.166 xs.167 ->
+ case ys.164 of {
+ (:) y.168 ys.169 ->
+ let f.170 = f.162
+ in
+ (: t129)
+ (f.170 x.166 y.168)
+ ((((MapPairs.mappairs' t133) t136) t129)
+ f.170 xs.167 ys.169)
+ _ -> fail.165
+ }
+ _ -> fail.165
+ }
+ in
+ case ys.164 of {
+ Nil -> let x.172 = ds.163 in let f.173 = f.162 in Nil! t129
+ _ -> fail.171
+ }
+ in
+ case ds.163 of {
+ Nil -> Nil! t129
+ _ -> fail.174
+ }
+{- end plain CoRec -}
+