--- /dev/null
+Desugared:
+{- plain CoRec -}
+Main.foldPair ::
+ for all a, b. (a -> a -> a, b -> b -> b) -> (a, b) -> [(a, b)] -> (a, b)
+Main.foldPair =
+ /\ a b -> \ fg.122 ab.123 ds.124 ->
+ let
+ fail.125 =
+ (error (a, b))
+ "\"ds031.hs\", line 4: pattern-matching failure [function binding]\n"S in
+ let
+ fail.141 =
+ case fg.122 of {
+ MkTuple2 f.126 g.127 ->
+ case ds.124 of {
+ (:) ds.128 abs.129 ->
+ case ds.128 of {
+ MkTuple2 a.130 b.131 ->
+ let ab.132 = ab.123 in
+ let fg.133 = fg.122 in
+ let
+ ds.134 =
+ ((Main.foldPair a) b)
+ fg.133 ab.132 abs.129 in
+ let
+ u.137 =
+ case ds.134 of {
+ MkTuple2 u.135 v.136 -> u.135
+ } in
+ let
+ v.140 =
+ case ds.134 of {
+ MkTuple2 u.138 v.139 -> v.139
+ }
+ in
+ MkTuple2!
+ a
+ b
+ (f.126 a.130 u.137)
+ (g.127 b.131 v.140)
+ }
+ _ -> fail.125
+ }
+ }
+ in
+ case ds.124 of {
+ Nil -> ab.123
+ _ -> fail.141
+ }
+{- end plain CoRec -}
+