--================================================================================ Simplified: `$d5' :: `{PrelBase.Eval (Pair a{-r4b-} b{-r4c-})}' `$d5' = _/\_ `a{-s1NX-}' `b{-s1NY-}' -> `PrelBase.void' `$d4' :: `{PrelBase.Eval (LList alpha{-r49-})}' `$d4' = _/\_ `alpha{-s1NZ-}' -> `PrelBase.void' `$d2' :: `{PrelBase.Eval (Tree x{-r46-})}' `$d2' = _/\_ `x{-s1O0-}' -> `PrelBase.void' `$d1' :: `{PrelBase.Eval (A a{-r44-})}' `$d1' = _/\_ `a{-s1O1-}' -> `PrelBase.void' `MkPair' :: `a{-r4b-} -> b{-r4c-} -> Pair a{-r4b-} b{-r4c-}' `MkPair' = _/\_ `a{-s1NI-}' `b{-s1NJ-}' -> \ `tpl' :: `a{-s1NI-}' `tpl' `tpl' :: `b{-s1NJ-}' `tpl' -> `MkPair' {_@_ `a{-s1NI-}' _@_ `b{-s1NJ-}' `tpl' `tpl'} `MkA' :: `a{-r44-} -> A a{-r44-} -> A a{-r44-}' `MkA' = _/\_ `a{-s1NK-}' -> \ `tpl' :: `a{-s1NK-}' `tpl' `tpl' :: `A a{-s1NK-}' `tpl' -> `MkA' {_@_ `a{-s1NK-}' `tpl' `tpl'} `FF' :: `Boolean' `FF' = `FF' {} `TT' :: `Boolean' `TT' = `TT' {} `Nill' :: `LList alpha{-r49-}' `Nill' = _/\_ `alpha{-s1NL-}' -> `Nill' {_@_ `alpha{-s1NL-}'} `Conss' :: `alpha{-r49-} -> LList alpha{-r49-} -> LList alpha{-r49-}' `Conss' = _/\_ `alpha{-s1NM-}' -> \ `tpl' :: `alpha{-s1NM-}' `tpl' `tpl' :: `LList alpha{-s1NM-}' `tpl' -> `Conss' {_@_ `alpha{-s1NM-}' `tpl' `tpl'} Rec { `append' :: `LList a{-aHq-} -> LList a{-aHq-} -> LList a{-aHq-}' `append' = _/\_ `a{-s1NN-}' -> \ `xs' :: `LList a{-s1NN-}' `xs' `ys' :: `LList a{-s1NN-}' `ys' -> case `xs' of { `Nill' -> `ys'; `Conss' `z' `zs' -> let { `ds' :: `LList a{-s1NN-}' `ds' = `append' _@_ `a{-s1NN-}' `zs' `ys' } in `Conss' {_@_ `a{-s1NN-}' `z' `ds'}; } end Rec } Rec { `flat' :: `Tree (Pair a{-aHT-} b{-aHU-}) -> LList a{-aHT-}' `flat' = _/\_ `b{-s1NQ-}' `a{-s1NP-}' -> \ `s' :: `Tree (Pair a{-s1NP-} b{-s1NQ-})' `s' -> case `s' of { `Leaf' `ds' -> case `ds' of { `MkPair' `a' `b' -> let { `ds' :: `LList a{-s1NP-}' `ds' = `Nill' {_@_ `a{-s1NP-}'} } in `Conss' {_@_ `a{-s1NP-}' `a' `ds'};}; `Node' `l' `r' -> case `flat' _@_ `b{-s1NQ-}' _@_ `a{-s1NP-}' `l' of { `ds' -> let { `ds' :: `LList a{-s1NP-}' `ds' = `flat' _@_ `b{-s1NQ-}' _@_ `a{-s1NP-}' `r' } in `append' _@_ `a{-s1NP-}' `ds' `ds';}; } end Rec } `Zero' :: `Nat' `Zero' = `Zero' {} `Succ' :: `Nat -> Nat' `Succ' = \ `tpl' :: `Nat' `tpl' -> `Succ' {`tpl'} `Leaf' :: `x{-r46-} -> Tree x{-r46-}' `Leaf' = _/\_ `x{-s1NU-}' -> \ `tpl' :: `x{-s1NU-}' `tpl' -> `Leaf' {_@_ `x{-s1NU-}' `tpl'} `Node' :: `Tree x{-r46-} -> Tree x{-r46-} -> Tree x{-r46-}' `Node' = _/\_ `x{-s1NV-}' -> \ `tpl' :: `Tree x{-s1NV-}' `tpl' `tpl' :: `Tree x{-s1NV-}' `tpl' -> `Node' {_@_ `x{-s1NV-}' `tpl' `tpl'} `$d6' :: `{PrelBase.Eval Boolean}' `$d6' = `PrelBase.void' `$d3' :: `{PrelBase.Eval Nat}' `$d3' = `PrelBase.void' `s1h2' :: `Pair Boolean Nat' `s1h2' = `MkPair' {_@_ `Boolean' _@_ `Nat' `TT' `Zero'} `s1h7' :: `Tree (Pair Boolean Nat)' `s1h7' = `Leaf' {_@_ (`Pair' `Boolean' `Nat') `s1h2'} `s1l4' :: `LList Boolean' `s1l4' = `flat' _@_ `Nat' _@_ `Boolean' `s1h7' `fl' :: `Boolean -> LList Boolean' `fl' = \ `x' :: `Boolean' `x' -> `s1l4'