{-# OPTIONS -XNoMonomorphismRestriction #-} module RUNLENGTH (inv_Frunlength,runlength) where import Control.Monad import InvUtil import Data.Tuple import MyData inv_Frunlength = runI . e_Frunlength data StatesOfFrunlength e_1 e_8 e_9 e_10 e_13 e_15 e_18 e_19 e_21 e_24 e_27 e_30 e_38 e_39 e_42 e_43 e_47 e_48 e_51 e_52 e_53 e_54 e_63 e_64 e_65 e_67 e_69 e_70 e_72 e_73 e_74 e_75 e_76 e_77 = S_Frunlength_1 e_1 | S_Frunlength_8 e_8 | S_Frunlength_9 e_9 | S_Frunlength_10 e_10 | S_Frunlength_13 e_13 | S_Frunlength_15 e_15 | S_Frunlength_18 e_18 | S_Frunlength_19 e_19 | S_Frunlength_21 e_21 | S_Frunlength_24 e_24 | S_Frunlength_27 e_27 | S_Frunlength_30 e_30 | S_Frunlength_38 e_38 | S_Frunlength_39 e_39 | S_Frunlength_42 e_42 | S_Frunlength_43 e_43 | S_Frunlength_47 e_47 | S_Frunlength_48 e_48 | S_Frunlength_51 e_51 | S_Frunlength_52 e_52 | S_Frunlength_53 e_53 | S_Frunlength_54 e_54 | S_Frunlength_63 e_63 | S_Frunlength_64 e_64 | S_Frunlength_65 e_65 | S_Frunlength_67 e_67 | S_Frunlength_69 e_69 | S_Frunlength_70 e_70 | S_Frunlength_72 e_72 | S_Frunlength_73 e_73 | S_Frunlength_74 e_74 | S_Frunlength_75 e_75 | S_Frunlength_76 e_76 | S_Frunlength_77 e_77 e_Frunlength x = case trav_Frunlength_0 x of S_Frunlength_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: Frunlength" trav_Frunlength_0 (Nil) = sem_Frunlength_0_Nil Nil trav_Frunlength_0 (Cons t1 t2) = sem_Frunlength_0_Cons (Cons t1 t2) (trav_Frunlength_6 t1) (trav_Frunlength_1 t2) trav_Frunlength_0 t = sem_Frunlength_0___ t trav_Frunlength_1 (Nil) = sem_Frunlength_1_Nil Nil trav_Frunlength_1 (Cons t1 t2) = sem_Frunlength_1_Cons (Cons t1 t2) (trav_Frunlength_3 t1) (trav_Frunlength_2 t2) trav_Frunlength_1 t = sem_Frunlength_1___ t trav_Frunlength_2 t = sem_Frunlength_2___ t trav_Frunlength_3 (Pair t1 t2) = sem_Frunlength_3_Pair (Pair t1 t2) (trav_Frunlength_5 t1) (trav_Frunlength_4 t2) trav_Frunlength_3 t = sem_Frunlength_3___ t trav_Frunlength_4 t = sem_Frunlength_4___ t trav_Frunlength_5 t = sem_Frunlength_5___ t trav_Frunlength_6 (Pair t1 t2) = sem_Frunlength_6_Pair (Pair t1 t2) (trav_Frunlength_14 t1) (trav_Frunlength_7 t2) trav_Frunlength_6 t = sem_Frunlength_6___ t trav_Frunlength_7 (Cons t1 t2) = sem_Frunlength_7_Cons (Cons t1 t2) (trav_Frunlength_13 t1) (trav_Frunlength_8 t2) trav_Frunlength_7 t = sem_Frunlength_7___ t trav_Frunlength_8 (Nil) = sem_Frunlength_8_Nil Nil trav_Frunlength_8 (Cons t1 t2) = sem_Frunlength_8_Cons (Cons t1 t2) (trav_Frunlength_12 t1) (trav_Frunlength_9 t2) trav_Frunlength_8 t = sem_Frunlength_8___ t trav_Frunlength_9 (Nil) = sem_Frunlength_9_Nil Nil trav_Frunlength_9 (Cons t1 t2) = sem_Frunlength_9_Cons (Cons t1 t2) (trav_Frunlength_11 t1) (trav_Frunlength_10 t2) trav_Frunlength_9 t = sem_Frunlength_9___ t trav_Frunlength_10 (Nil) = sem_Frunlength_10_Nil Nil trav_Frunlength_10 (Cons t1 t2) = sem_Frunlength_10_Cons (Cons t1 t2) (trav_Frunlength_11 t1) (trav_Frunlength_10 t2) trav_Frunlength_10 t = sem_Frunlength_10___ t trav_Frunlength_11 (B1) = sem_Frunlength_11_B1 B1 trav_Frunlength_11 (B0) = sem_Frunlength_11_B0 B0 trav_Frunlength_11 t = sem_Frunlength_11___ t trav_Frunlength_12 (B1) = sem_Frunlength_12_B1 B1 trav_Frunlength_12 (B0) = sem_Frunlength_12_B0 B0 trav_Frunlength_12 t = sem_Frunlength_12___ t trav_Frunlength_13 (B1) = sem_Frunlength_13_B1 B1 trav_Frunlength_13 (B0) = sem_Frunlength_13_B0 B0 trav_Frunlength_13 t = sem_Frunlength_13___ t trav_Frunlength_14 t = sem_Frunlength_14___ t sem_Frunlength_0_Cons tree (S_Frunlength_21 t1) (S_Frunlength_8 t2) = S_Frunlength_1 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) () -> return (r_v11)) ((\(r_v1) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) Nil r_v1)) >=> (\(r_v1, r_v2) -> return (Cons r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_0_Cons tree (S_Frunlength_21 t1) (S_Frunlength_10 t2) = S_Frunlength_1 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22, r_v23) -> return (r_v11, r_v21, r_v22, r_v23)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Left (Pair r_v1 r_v2)) r_v3 r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> return (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_0_Cons tree (S_Frunlength_24 t1) (S_Frunlength_8 t2) = S_Frunlength_1 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Right r_v1) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> return (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_0_Cons tree (S_Frunlength_24 t1) (S_Frunlength_9 t2) = S_Frunlength_1 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Right r_v1) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> return (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_0_Cons tree (S_Frunlength_24 t1) (S_Frunlength_10 t2) = S_Frunlength_1 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Right r_v1) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> return (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_0_Nil tree = S_Frunlength_1 (return () >>= (\() -> return Nil)) sem_Frunlength_0___ tree = S_Frunlength_74 undefined sem_Frunlength_1_Cons tree (S_Frunlength_15 t1) (S_Frunlength_13 t2) = S_Frunlength_10 ((\(x1_1) (x2_1) -> (return tree, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_1_Cons tree (S_Frunlength_74 t1) (S_Frunlength_13 t2) = S_Frunlength_9 ((\(_) (_) -> (return tree)) t1 t2) sem_Frunlength_1_Nil tree = S_Frunlength_8 (return (), return tree) sem_Frunlength_1___ tree = S_Frunlength_9 (return tree) sem_Frunlength_2___ tree = S_Frunlength_13 (return tree) sem_Frunlength_3_Pair tree (S_Frunlength_19 t1) (S_Frunlength_18 t2) = S_Frunlength_15 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v11, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_3___ tree = S_Frunlength_74 undefined sem_Frunlength_4___ tree = S_Frunlength_18 (return tree) sem_Frunlength_5___ tree = S_Frunlength_19 (return tree) sem_Frunlength_6_Pair tree (S_Frunlength_77 t1) (S_Frunlength_27 t2) = S_Frunlength_21 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) () -> return (r_v11)) tmp_r1 tmp_r2, do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\(r_v11) () -> return (r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_6_Pair tree (S_Frunlength_77 t1) (S_Frunlength_30 t2) = S_Frunlength_24 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v11, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_6___ tree = S_Frunlength_74 undefined sem_Frunlength_7_Cons tree (S_Frunlength_75 t1) (S_Frunlength_43 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2) -> (do tmp_r1 <- x1_5 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_75 t1) (S_Frunlength_48 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2) -> (do tmp_r1 <- x1_4 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 (Cons B0 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_76 t1) (S_Frunlength_42 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B0 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_76 t1) (S_Frunlength_43 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B0 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_76 t1) (S_Frunlength_48 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_75 t1) (S_Frunlength_39 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 Nil)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_76 t1) (S_Frunlength_39 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_76 t1) (S_Frunlength_47 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_75 t1) (S_Frunlength_38 t2) = S_Frunlength_27 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() () -> return ()) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() () -> return ()) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7_Cons tree (S_Frunlength_76 t1) (S_Frunlength_38 t2) = S_Frunlength_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 Nil)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_7___ tree = S_Frunlength_74 undefined sem_Frunlength_8_Cons tree (S_Frunlength_72 t1) (S_Frunlength_52 t2) = S_Frunlength_48 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_8_Cons tree (S_Frunlength_72 t1) (S_Frunlength_53 t2) = S_Frunlength_48 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_8_Cons tree (S_Frunlength_73 t1) (S_Frunlength_52 t2) = S_Frunlength_42 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_8_Cons tree (S_Frunlength_73 t1) (S_Frunlength_53 t2) = S_Frunlength_43 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_4 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_8_Cons tree (S_Frunlength_72 t1) (S_Frunlength_51 t2) = S_Frunlength_39 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() () -> return ()) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_8_Cons tree (S_Frunlength_72 t1) (S_Frunlength_54 t2) = S_Frunlength_47 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_8_Nil tree = S_Frunlength_38 (return (), return (), return ()) sem_Frunlength_8___ tree = S_Frunlength_74 undefined sem_Frunlength_9_Cons tree (S_Frunlength_74 t1) (S_Frunlength_64 t2) = S_Frunlength_54 ((\(_) (_) -> (return tree)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_74 t1) (S_Frunlength_65 t2) = S_Frunlength_54 ((\(_) (_) -> (return tree)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_69 t1) (S_Frunlength_64 t2) = S_Frunlength_53 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_4 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_4 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_69 t1) (S_Frunlength_65 t2) = S_Frunlength_53 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_70 t1) (S_Frunlength_64 t2) = S_Frunlength_53 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_70 t1) (S_Frunlength_65 t2) = S_Frunlength_52 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_74 t1) (S_Frunlength_63 t2) = S_Frunlength_54 ((\(_) (_) -> (return tree)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_69 t1) (S_Frunlength_63 t2) = S_Frunlength_53 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_69 t1) (S_Frunlength_67 t2) = S_Frunlength_52 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_70 t1) (S_Frunlength_63 t2) = S_Frunlength_52 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_70 t1) (S_Frunlength_67 t2) = S_Frunlength_52 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Frunlength_9_Cons tree (S_Frunlength_74 t1) (S_Frunlength_67 t2) = S_Frunlength_54 ((\(_) (_) -> (return tree)) t1 t2) sem_Frunlength_9_Nil tree = S_Frunlength_51 (return (), return tree) sem_Frunlength_9___ tree = S_Frunlength_54 (return tree) sem_Frunlength_10_Cons tree (S_Frunlength_74 t1) (S_Frunlength_64 t2) = S_Frunlength_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_74 t1) (S_Frunlength_65 t2) = S_Frunlength_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_69 t1) (S_Frunlength_64 t2) = S_Frunlength_64 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_4 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_69 t1) (S_Frunlength_65 t2) = S_Frunlength_64 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_70 t1) (S_Frunlength_64 t2) = S_Frunlength_64 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_70 t1) (S_Frunlength_65 t2) = S_Frunlength_65 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_74 t1) (S_Frunlength_63 t2) = S_Frunlength_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_69 t1) (S_Frunlength_63 t2) = S_Frunlength_64 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_69 t1) (S_Frunlength_67 t2) = S_Frunlength_65 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_70 t1) (S_Frunlength_63 t2) = S_Frunlength_65 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_70 t1) (S_Frunlength_67 t2) = S_Frunlength_65 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_Frunlength_10_Cons tree (S_Frunlength_74 t1) (S_Frunlength_67 t2) = S_Frunlength_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_Frunlength_10_Nil tree = S_Frunlength_63 (return (), return tree, return tree) sem_Frunlength_10___ tree = S_Frunlength_67 (return tree, return tree) sem_Frunlength_11_B0 tree = S_Frunlength_70 (return (), return ()) sem_Frunlength_11_B1 tree = S_Frunlength_69 (return (), return (), return ()) sem_Frunlength_11___ tree = S_Frunlength_74 undefined sem_Frunlength_12_B0 tree = S_Frunlength_73 (return (), return ()) sem_Frunlength_12_B1 tree = S_Frunlength_72 (return (), return (), return ()) sem_Frunlength_12___ tree = S_Frunlength_74 undefined sem_Frunlength_13_B0 tree = S_Frunlength_75 (return (), return (), return (), return (), return ()) sem_Frunlength_13_B1 tree = S_Frunlength_76 (return (), return (), return ()) sem_Frunlength_13___ tree = S_Frunlength_74 undefined sem_Frunlength_14___ tree = S_Frunlength_77 (return tree, return tree, return tree) data StatesOfE8 e_1 e_8 e_9 e_10 e_13 e_15 e_18 e_19 e_21 e_24 e_27 e_30 e_38 e_39 e_42 e_43 e_47 e_48 e_51 e_52 e_53 e_54 e_63 e_64 e_65 e_67 e_69 e_70 e_72 e_73 e_74 e_75 e_76 e_77 = S_E8_1 e_1 | S_E8_8 e_8 | S_E8_9 e_9 | S_E8_10 e_10 | S_E8_13 e_13 | S_E8_15 e_15 | S_E8_18 e_18 | S_E8_19 e_19 | S_E8_21 e_21 | S_E8_24 e_24 | S_E8_27 e_27 | S_E8_30 e_30 | S_E8_38 e_38 | S_E8_39 e_39 | S_E8_42 e_42 | S_E8_43 e_43 | S_E8_47 e_47 | S_E8_48 e_48 | S_E8_51 e_51 | S_E8_52 e_52 | S_E8_53 e_53 | S_E8_54 e_54 | S_E8_63 e_63 | S_E8_64 e_64 | S_E8_65 e_65 | S_E8_67 e_67 | S_E8_69 e_69 | S_E8_70 e_70 | S_E8_72 e_72 | S_E8_73 e_73 | S_E8_74 e_74 | S_E8_75 e_75 | S_E8_76 e_76 | S_E8_77 e_77 e_E8 x = case trav_E8_0 x of S_E8_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E8" trav_E8_0 (Nil) = sem_E8_0_Nil Nil trav_E8_0 (Cons t1 t2) = sem_E8_0_Cons (Cons t1 t2) (trav_E8_6 t1) (trav_E8_1 t2) trav_E8_0 t = sem_E8_0___ t trav_E8_1 (Nil) = sem_E8_1_Nil Nil trav_E8_1 (Cons t1 t2) = sem_E8_1_Cons (Cons t1 t2) (trav_E8_3 t1) (trav_E8_2 t2) trav_E8_1 t = sem_E8_1___ t trav_E8_2 t = sem_E8_2___ t trav_E8_3 (Pair t1 t2) = sem_E8_3_Pair (Pair t1 t2) (trav_E8_5 t1) (trav_E8_4 t2) trav_E8_3 t = sem_E8_3___ t trav_E8_4 t = sem_E8_4___ t trav_E8_5 t = sem_E8_5___ t trav_E8_6 (Pair t1 t2) = sem_E8_6_Pair (Pair t1 t2) (trav_E8_14 t1) (trav_E8_7 t2) trav_E8_6 t = sem_E8_6___ t trav_E8_7 (Cons t1 t2) = sem_E8_7_Cons (Cons t1 t2) (trav_E8_13 t1) (trav_E8_8 t2) trav_E8_7 t = sem_E8_7___ t trav_E8_8 (Nil) = sem_E8_8_Nil Nil trav_E8_8 (Cons t1 t2) = sem_E8_8_Cons (Cons t1 t2) (trav_E8_12 t1) (trav_E8_9 t2) trav_E8_8 t = sem_E8_8___ t trav_E8_9 (Nil) = sem_E8_9_Nil Nil trav_E8_9 (Cons t1 t2) = sem_E8_9_Cons (Cons t1 t2) (trav_E8_11 t1) (trav_E8_10 t2) trav_E8_9 t = sem_E8_9___ t trav_E8_10 (Nil) = sem_E8_10_Nil Nil trav_E8_10 (Cons t1 t2) = sem_E8_10_Cons (Cons t1 t2) (trav_E8_11 t1) (trav_E8_10 t2) trav_E8_10 t = sem_E8_10___ t trav_E8_11 (B1) = sem_E8_11_B1 B1 trav_E8_11 (B0) = sem_E8_11_B0 B0 trav_E8_11 t = sem_E8_11___ t trav_E8_12 (B1) = sem_E8_12_B1 B1 trav_E8_12 (B0) = sem_E8_12_B0 B0 trav_E8_12 t = sem_E8_12___ t trav_E8_13 (B1) = sem_E8_13_B1 B1 trav_E8_13 (B0) = sem_E8_13_B0 B0 trav_E8_13 t = sem_E8_13___ t trav_E8_14 t = sem_E8_14___ t sem_E8_0_Cons tree (S_E8_21 t1) (S_E8_8 t2) = S_E8_1 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) () -> return (r_v11)) ((\(r_v1) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) Nil r_v1)) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E8_0_Cons tree (S_E8_21 t1) (S_E8_10 t2) = S_E8_1 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22, r_v23) -> return (r_v11, r_v21, r_v22, r_v23)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Left (Pair r_v1 r_v2)) r_v3 r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E8_0_Cons tree (S_E8_24 t1) (S_E8_8 t2) = S_E8_1 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Right r_v1) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E8_0_Cons tree (S_E8_24 t1) (S_E8_9 t2) = S_E8_1 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Right r_v1) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E8_0_Cons tree (S_E8_24 t1) (S_E8_10 t2) = S_E8_1 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E29) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v21, r_v31)) ((,,) (Right r_v1) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E8) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Cons (Pair r_v2 r_v3) r_v4) r_v1)) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E8_0_Nil tree = S_E8_1 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil)) sem_E8_0___ tree = S_E8_74 undefined sem_E8_1_Cons tree (S_E8_15 t1) (S_E8_13 t2) = S_E8_10 ((\(x1_1) (x2_1) -> (return tree, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v12, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_1_Cons tree (S_E8_74 t1) (S_E8_13 t2) = S_E8_9 ((\(_) (_) -> (return tree)) t1 t2) sem_E8_1_Nil tree = S_E8_8 (return (), return tree) sem_E8_1___ tree = S_E8_9 (return tree) sem_E8_2___ tree = S_E8_13 (return tree) sem_E8_3_Pair tree (S_E8_19 t1) (S_E8_18 t2) = S_E8_15 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v11, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_3___ tree = S_E8_74 undefined sem_E8_4___ tree = S_E8_18 (return tree) sem_E8_5___ tree = S_E8_19 (return tree) sem_E8_6_Pair tree (S_E8_77 t1) (S_E8_27 t2) = S_E8_21 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) () -> return (r_v11)) tmp_r1 tmp_r2, do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\(r_v11) () -> return (r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E8_6_Pair tree (S_E8_77 t1) (S_E8_30 t2) = S_E8_24 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v11, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_6___ tree = S_E8_74 undefined sem_E8_7_Cons tree (S_E8_75 t1) (S_E8_43 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2) -> (do tmp_r1 <- x1_5 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_75 t1) (S_E8_48 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2) -> (do tmp_r1 <- x1_4 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 (Cons B0 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_76 t1) (S_E8_42 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B0 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_76 t1) (S_E8_43 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B0 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_76 t1) (S_E8_48 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_75 t1) (S_E8_39 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 Nil)) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_76 t1) (S_E8_39 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_76 t1) (S_E8_47 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 (Cons B1 r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_75 t1) (S_E8_38 t2) = S_E8_27 ((\(x1_1, x1_2, x1_3, x1_4, x1_5) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() () -> return ()) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() () -> return ()) tmp_r1 tmp_r2)) t1 t2) sem_E8_7_Cons tree (S_E8_76 t1) (S_E8_38 t2) = S_E8_30 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 Nil)) tmp_r1 tmp_r2)) t1 t2) sem_E8_7___ tree = S_E8_74 undefined sem_E8_8_Cons tree (S_E8_72 t1) (S_E8_52 t2) = S_E8_48 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_8_Cons tree (S_E8_72 t1) (S_E8_53 t2) = S_E8_48 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_8_Cons tree (S_E8_73 t1) (S_E8_52 t2) = S_E8_42 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_8_Cons tree (S_E8_73 t1) (S_E8_53 t2) = S_E8_43 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_4 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_8_Cons tree (S_E8_72 t1) (S_E8_51 t2) = S_E8_39 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() () -> return ()) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_8_Cons tree (S_E8_72 t1) (S_E8_54 t2) = S_E8_47 ((\(x1_1, x1_2, x1_3) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E8_8_Nil tree = S_E8_38 (return (), return (), return ()) sem_E8_8___ tree = S_E8_74 undefined sem_E8_9_Cons tree (S_E8_74 t1) (S_E8_64 t2) = S_E8_54 ((\(_) (_) -> (return tree)) t1 t2) sem_E8_9_Cons tree (S_E8_74 t1) (S_E8_65 t2) = S_E8_54 ((\(_) (_) -> (return tree)) t1 t2) sem_E8_9_Cons tree (S_E8_69 t1) (S_E8_64 t2) = S_E8_53 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_4 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_4 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_69 t1) (S_E8_65 t2) = S_E8_53 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_70 t1) (S_E8_64 t2) = S_E8_53 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_70 t1) (S_E8_65 t2) = S_E8_52 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_74 t1) (S_E8_63 t2) = S_E8_54 ((\(_) (_) -> (return tree)) t1 t2) sem_E8_9_Cons tree (S_E8_69 t1) (S_E8_63 t2) = S_E8_53 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_69 t1) (S_E8_67 t2) = S_E8_52 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_70 t1) (S_E8_63 t2) = S_E8_52 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_70 t1) (S_E8_67 t2) = S_E8_52 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E8_9_Cons tree (S_E8_74 t1) (S_E8_67 t2) = S_E8_54 ((\(_) (_) -> (return tree)) t1 t2) sem_E8_9_Nil tree = S_E8_51 (return (), return tree) sem_E8_9___ tree = S_E8_54 (return tree) sem_E8_10_Cons tree (S_E8_74 t1) (S_E8_64 t2) = S_E8_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_74 t1) (S_E8_65 t2) = S_E8_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_69 t1) (S_E8_64 t2) = S_E8_64 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_4 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_69 t1) (S_E8_65 t2) = S_E8_64 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_70 t1) (S_E8_64 t2) = S_E8_64 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3, x2_4) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_70 t1) (S_E8_65 t2) = S_E8_65 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_74 t1) (S_E8_63 t2) = S_E8_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_69 t1) (S_E8_63 t2) = S_E8_64 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_3 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_69 t1) (S_E8_67 t2) = S_E8_65 ((\(x1_1, x1_2, x1_3) (x2_1, x2_2) -> (do tmp_r1 <- x1_3 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_70 t1) (S_E8_63 t2) = S_E8_65 ((\(x1_1, x1_2) (x2_1, x2_2, x2_3) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_70 t1) (S_E8_67 t2) = S_E8_65 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2, return tree, return tree)) t1 t2) sem_E8_10_Cons tree (S_E8_74 t1) (S_E8_67 t2) = S_E8_67 ((\(_) (_) -> (return tree, return tree)) t1 t2) sem_E8_10_Nil tree = S_E8_63 (return (), return tree, return tree) sem_E8_10___ tree = S_E8_67 (return tree, return tree) sem_E8_11_B0 tree = S_E8_70 (return (), return ()) sem_E8_11_B1 tree = S_E8_69 (return (), return (), return ()) sem_E8_11___ tree = S_E8_74 undefined sem_E8_12_B0 tree = S_E8_73 (return (), return ()) sem_E8_12_B1 tree = S_E8_72 (return (), return (), return ()) sem_E8_12___ tree = S_E8_74 undefined sem_E8_13_B0 tree = S_E8_75 (return (), return (), return (), return (), return ()) sem_E8_13_B1 tree = S_E8_76 (return (), return (), return ()) sem_E8_13___ tree = S_E8_74 undefined sem_E8_14___ tree = S_E8_77 (return tree, return tree, return tree) data StatesOfE9 e_0 = S_E9_0 e_0 e_E9 x = case trav_E9_0 x of S_E9_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E9" trav_E9_0 t = sem_E9_0___ t sem_E9_0___ tree = S_E9_0 (return tree) data StatesOfE10 e_0 = S_E10_0 e_0 e_E10 x = case trav_E10_0 x of S_E10_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E10" trav_E10_0 t = sem_E10_0___ t sem_E10_0___ tree = S_E10_0 (return tree) data StatesOfE29 e_1 e_7 e_8 e_10 e_13 e_17 e_18 e_19 e_20 e_21 = S_E29_1 e_1 | S_E29_7 e_7 | S_E29_8 e_8 | S_E29_10 e_10 | S_E29_13 e_13 | S_E29_17 e_17 | S_E29_18 e_18 | S_E29_19 e_19 | S_E29_20 e_20 | S_E29_21 e_21 e_E29 x = case trav_E29_0 x of S_E29_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E29" trav_E29_0 (Right t1) = sem_E29_0_Right (Right t1) (trav_E29_1 t1) trav_E29_0 (Left t1) = sem_E29_0_Left (Left t1) (trav_E29_2 t1) trav_E29_0 t = sem_E29_0___ t trav_E29_1 (B1) = sem_E29_1_B1 B1 trav_E29_1 (B0) = sem_E29_1_B0 B0 trav_E29_1 t = sem_E29_1___ t trav_E29_2 (Pair t1 t2) = sem_E29_2_Pair (Pair t1 t2) (trav_E29_4 t1) (trav_E29_3 t2) trav_E29_2 t = sem_E29_2___ t trav_E29_3 (B1) = sem_E29_3_B1 B1 trav_E29_3 (B0) = sem_E29_3_B0 B0 trav_E29_3 t = sem_E29_3___ t trav_E29_4 (B1) = sem_E29_4_B1 B1 trav_E29_4 (B0) = sem_E29_4_B0 B0 trav_E29_4 t = sem_E29_4___ t sem_E29_0_Left tree (S_E29_10 t1) = S_E29_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) B0 B1)) ()) tmp_r1)) t1) sem_E29_0_Left tree (S_E29_13 t1) = S_E29_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) B1 B0)) ()) tmp_r1)) t1) sem_E29_0_Right tree (S_E29_7 t1) = S_E29_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) B0 B0)) ()) tmp_r1)) t1) sem_E29_0_Right tree (S_E29_8 t1) = S_E29_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) B1 B1)) ()) tmp_r1)) t1) sem_E29_0___ tree = S_E29_19 undefined sem_E29_1_B0 tree = S_E29_7 (return ()) sem_E29_1_B1 tree = S_E29_8 (return ()) sem_E29_1___ tree = S_E29_19 undefined sem_E29_2_Pair tree (S_E29_20 t1) (S_E29_17 t2) = S_E29_10 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() () -> return ()) tmp_r1 tmp_r2)) t1 t2) sem_E29_2_Pair tree (S_E29_21 t1) (S_E29_18 t2) = S_E29_13 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() () -> return ()) tmp_r1 tmp_r2)) t1 t2) sem_E29_2___ tree = S_E29_19 undefined sem_E29_3_B0 tree = S_E29_18 (return ()) sem_E29_3_B1 tree = S_E29_17 (return ()) sem_E29_3___ tree = S_E29_19 undefined sem_E29_4_B0 tree = S_E29_20 (return ()) sem_E29_4_B1 tree = S_E29_21 (return ()) sem_E29_4___ tree = S_E29_19 undefined data StatesOfE30 e_0 = S_E30_0 e_0 e_E30 x = case trav_E30_0 x of S_E30_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E30" trav_E30_0 t = sem_E30_0___ t sem_E30_0___ tree = S_E30_0 (return tree) data StatesOfE31 e_0 = S_E31_0 e_0 e_E31 x = case trav_E31_0 x of S_E31_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E31" trav_E31_0 t = sem_E31_0___ t sem_E31_0___ tree = S_E31_0 (return tree) data StatesOfE32 e_0 = S_E32_0 e_0 e_E32 x = case trav_E32_0 x of S_E32_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E32" trav_E32_0 t = sem_E32_0___ t sem_E32_0___ tree = S_E32_0 (return tree) data StatesOfE33 e_0 = S_E33_0 e_0 e_E33 x = case trav_E33_0 x of S_E33_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E33" trav_E33_0 t = sem_E33_0___ t sem_E33_0___ tree = S_E33_0 (return tree) data StatesOfE44 e_0 = S_E44_0 e_0 e_E44 x = case trav_E44_0 x of S_E44_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E44" trav_E44_0 t = sem_E44_0___ t sem_E44_0___ tree = S_E44_0 (return tree) data StatesOfE93 e_0 = S_E93_0 e_0 e_E93 x = case trav_E93_0 x of S_E93_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E93" trav_E93_0 t = sem_E93_0___ t sem_E93_0___ tree = S_E93_0 (return tree) data StatesOfE114 e_0 = S_E114_0 e_0 e_E114 x = case trav_E114_0 x of S_E114_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E114" trav_E114_0 t = sem_E114_0___ t sem_E114_0___ tree = S_E114_0 (return tree) data StatesOfE125 e_0 = S_E125_0 e_0 e_E125 x = case trav_E125_0 x of S_E125_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E125" trav_E125_0 t = sem_E125_0___ t sem_E125_0___ tree = S_E125_0 (return tree) data StatesOfE139 e_0 = S_E139_0 e_0 e_E139 x = case trav_E139_0 x of S_E139_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E139" trav_E139_0 t = sem_E139_0___ t sem_E139_0___ tree = S_E139_0 (return tree) data StatesOfE146 e_0 = S_E146_0 e_0 e_E146 x = case trav_E146_0 x of S_E146_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E146" trav_E146_0 t = sem_E146_0___ t sem_E146_0___ tree = S_E146_0 (return tree) runlength (Nil) = Nil runlength (Cons a x) = f (runlength x) a f (Nil) a = Cons (Pair a (Cons B0 Nil)) Nil f (Cons (Pair b n) r) a = g (eq a b) n r g (Right a) n r = Cons (Pair a (inc n)) r g (Left (Pair a b)) n r = Cons (Pair a (Cons B0 Nil)) (Cons (Pair b n) r) inc (Cons (B1) (Nil)) = Cons B0 (Cons B1 Nil) inc (Cons (B0) (Nil)) = Cons B1 Nil inc (Cons (B0) (Cons (B0) x)) = Cons B1 (Cons B0 (nonemp x)) inc (Cons (B0) (Cons (B1) x)) = Cons B1 (Cons B1 x) inc (Cons (B1) (Cons (B0) x)) = Cons B0 (Cons B1 (nonemp x)) inc (Cons (B1) (Cons (B1) x)) = Cons B0 (Cons B0 (inc2 x)) inc2 (Nil) = Cons B1 Nil inc2 (Cons (B0) x) = Cons B1 (nonemp x) inc2 (Cons (B1) x) = Cons B0 (inc2 x) nonemp (Cons (B0) x) = Cons B0 x nonemp (Cons (B1) x) = Cons B1 x eq (B0) (B0) = Right B0 eq (B1) (B1) = Right B1 eq (B0) (B1) = Left (Pair B0 B1) eq (B1) (B0) = Left (Pair B1 B0)