================================================================================ Desugared: Rec { c{-r3B,x-} :: _forall_ [takz] => takz {-# L #-} c{-r3B,x-} = _/\_ takz -> _letrec_ { c_akx :: takz {-# L #-} c_akx = c_akx; } in c_akx h{-r3E,x-} :: _forall_ [talc tal8 tala] => talc -> tala -> tal8 -> tala {-# L #-} h{-r3E,x-} = _/\_ talc tal8 tala -> _letrec_ { h_akB :: talc -> tala -> tal8 -> tala {-# L #-} h_akB = \ x_r3u :: talc {-# L #-} x_r3u y_r3v :: tala {-# L #-} y_r3v -> let { f_r3x :: _forall_ [tal4 tal6] => tal6 -> tal4 -> tal6 {-# L #-} f_r3x = _/\_ tal4 tal6 -> \ a_r3z :: tal6 {-# L #-} a_r3z b_r3A :: tal4 {-# L #-} b_r3A -> a_r3z } in f_r3x _@_ tal8 _@_ tala y_r3v; } in h_akB f{-r3H,x-} :: _forall_ [taln] => taln -> taln {-# L #-} f{-r3H,x-} = _/\_ taln -> _letrec_ { f_ale :: taln -> taln {-# L #-} f_ale = \ x_r3j :: taln {-# L #-} x_r3j -> x_r3j; } in f_ale g{-r3G,x-} :: _forall_ [talK talM talI] => talK -> talM -> talI -> talI {-# L #-} g{-r3G,x-} = _/\_ talK talM talI -> _letrec_ { g_alp :: talK -> talM -> talI -> talI {-# L #-} g_alp = \ x_r3l :: talK {-# L #-} x_r3l y_r3m :: talM {-# L #-} y_r3m z_r3n :: talI {-# L #-} z_r3n -> f{-r3H,x-} _@_ talI z_r3n; } in g_alp j{-r3F,x-} :: _forall_ [tami tame tamf tamg] => tamf -> tamg -> tami -> tame -> tame {-# L #-} j{-r3F,x-} = _/\_ tami tame tamf tamg -> _letrec_ { j_alO :: tamf -> tamg -> tami -> tame -> tame {-# L #-} j_alO = \ w_r3p :: tamf {-# L #-} w_r3p x_r3q :: tamg {-# L #-} x_r3q y_r3r :: tami {-# L #-} y_r3r z_r3s :: tame {-# L #-} z_r3s -> g{-r3G,x-} _@_ tamf _@_ tamg _@_ tame w_r3p x_r3q z_r3s; } in j_alO b{-r3C,x-} :: _forall_ [tamo] => tamo -> tamo {-# L #-} b{-r3C,x-} = _/\_ tamo -> _letrec_ { b_amk :: tamo -> tamo {-# L #-} b_amk = f{-r3H,x-} _@_ tamo; } in b_amk a{-r3D,x-} :: _forall_ [tamu] => tamu -> tamu {-# L #-} a{-r3D,x-} = _/\_ tamu -> _letrec_ { a_amq :: tamu -> tamu {-# L #-} a_amq = b{-r3C,x-} _@_ tamu; } in a_amq end Rec }