{-# OPTIONS -XNoMonomorphismRestriction #-} module INPRE (inv_Finpre,inpre) where import Control.Monad import InvUtil import Data.Tuple import MyData inv_Finpre = e_Finpre data StatesOfFinpre e_1 e_6 e_7 e_8 e_11 e_12 e_13 e_14 e_DEAD = S_Finpre_1 e_1 | S_Finpre_6 e_6 | S_Finpre_7 e_7 | S_Finpre_8 e_8 | S_Finpre_11 e_11 | S_Finpre_12 e_12 | S_Finpre_13 e_13 | S_Finpre_14 e_14 | S_Finpre_DEAD e_DEAD e_Finpre x = case trav_Finpre_0 x of S_Finpre_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: Finpre" trav_Finpre_0 (Pair t1 t2) = sem_Finpre_0_Pair (Pair t1 t2) (trav_Finpre_4 t1) (trav_Finpre_1 t2) trav_Finpre_0 t = sem_Finpre_0___ t trav_Finpre_1 (Nil) = sem_Finpre_1_Nil Nil trav_Finpre_1 (Cons t1 t2) = sem_Finpre_1_Cons (Cons t1 t2) (trav_Finpre_3 t1) (trav_Finpre_2 t2) trav_Finpre_1 t = sem_Finpre_1___ t trav_Finpre_2 t = sem_Finpre_2___ t trav_Finpre_3 t = sem_Finpre_3___ t trav_Finpre_4 (Nil) = sem_Finpre_4_Nil Nil trav_Finpre_4 t = sem_Finpre_4___ t sem_Finpre_0_Pair tree (S_Finpre_13 t1) (S_Finpre_7 t2) = S_Finpre_1 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() () -> return ()) (\() -> return BLeaf) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_0_Pair tree (S_Finpre_13 t1) (S_Finpre_8 t2) = S_Finpre_1 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E31) return (r_v11, r_v12, r_v13, r_v14, r_v15)) (Pair r_v3 (Pair r_v1 r_v2))) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- (return r_x2 >>= e_E12) (r_v31) <- (return r_x3 >>= e_E14) return (r_v21, r_v31, r_v11)) ((,,) r_v5 (Pair r_v1 r_v2) (Pair r_v3 r_v4))) >=> (\(r_v1, r_v2, r_v3) -> return (BNode r_v3 r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_0_Pair tree (S_Finpre_14 t1) (S_Finpre_8 t2) = S_Finpre_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_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E31) return (r_v11, r_v12, r_v13, r_v14, r_v15)) (Pair r_v3 (Pair r_v1 r_v2))) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- (return r_x2 >>= e_E12) (r_v31) <- (return r_x3 >>= e_E14) return (r_v21, r_v31, r_v11)) ((,,) r_v5 (Pair r_v1 r_v2) (Pair r_v3 r_v4))) >=> (\(r_v1, r_v2, r_v3) -> return (BNode r_v3 r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_0_Pair _ _ _ = S_Finpre_DEAD mymzero sem_Finpre_0___ tree = S_Finpre_6 undefined sem_Finpre_0___ _ = S_Finpre_DEAD mymzero sem_Finpre_1_Cons tree (S_Finpre_12 t1) (S_Finpre_11 t2) = S_Finpre_8 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_1_Cons _ _ _ = S_Finpre_DEAD mymzero sem_Finpre_1_Nil tree = S_Finpre_7 (return ()) sem_Finpre_1_Nil _ = S_Finpre_DEAD mymzero sem_Finpre_1___ tree = S_Finpre_6 undefined sem_Finpre_1___ _ = S_Finpre_DEAD mymzero sem_Finpre_2___ tree = S_Finpre_11 (return tree) sem_Finpre_2___ _ = S_Finpre_DEAD mymzero sem_Finpre_3___ tree = S_Finpre_12 (return tree) sem_Finpre_3___ _ = S_Finpre_DEAD mymzero sem_Finpre_4_Nil tree = S_Finpre_13 (return (), return tree) sem_Finpre_4_Nil _ = S_Finpre_DEAD mymzero sem_Finpre_4___ tree = S_Finpre_14 (return tree) sem_Finpre_4___ _ = S_Finpre_DEAD mymzero data StatesOfE11 e_0 e_DEAD = S_E11_0 e_0 | S_E11_DEAD e_DEAD e_E11 x = case trav_E11_0 x of S_E11_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E11" trav_E11_0 t = sem_E11_0___ t sem_E11_0___ tree = S_E11_0 (return tree) sem_E11_0___ _ = S_E11_DEAD mymzero data StatesOfE12 e_3 e_6 e_7 e_8 e_11 e_12 e_13 e_14 e_DEAD = S_E12_3 e_3 | S_E12_6 e_6 | S_E12_7 e_7 | S_E12_8 e_8 | S_E12_11 e_11 | S_E12_12 e_12 | S_E12_13 e_13 | S_E12_14 e_14 | S_E12_DEAD e_DEAD e_E12 x = case trav_E12_0 x of S_E12_3 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E12" trav_E12_0 (Pair t1 t2) = sem_E12_0_Pair (Pair t1 t2) (trav_E12_4 t1) (trav_E12_1 t2) trav_E12_0 t = sem_E12_0___ t trav_E12_1 (Nil) = sem_E12_1_Nil Nil trav_E12_1 (Cons t1 t2) = sem_E12_1_Cons (Cons t1 t2) (trav_E12_3 t1) (trav_E12_2 t2) trav_E12_1 t = sem_E12_1___ t trav_E12_2 t = sem_E12_2___ t trav_E12_3 t = sem_E12_3___ t trav_E12_4 (Nil) = sem_E12_4_Nil Nil trav_E12_4 t = sem_E12_4___ t sem_E12_0_Pair tree (S_E12_13 t1) (S_E12_7 t2) = S_E12_3 ((\(x1_1, x1_2) (x2_1) -> (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)) BLeaf) tmp_r1 tmp_r2)) t1 t2) sem_E12_0_Pair tree (S_E12_13 t1) (S_E12_8 t2) = S_E12_3 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E31) return (r_v11, r_v12, r_v13, r_v14, r_v15)) (Pair r_v3 (Pair r_v1 r_v2))) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- (return r_x2 >>= e_E12) (r_v31) <- (return r_x3 >>= e_E14) return (r_v21, r_v31, r_v11)) ((,,) r_v5 (Pair r_v1 r_v2) (Pair r_v3 r_v4))) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BNode r_v3 r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E12_0_Pair tree (S_E12_14 t1) (S_E12_8 t2) = S_E12_3 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E31) return (r_v11, r_v12, r_v13, r_v14, r_v15)) (Pair r_v3 (Pair r_v1 r_v2))) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- (return r_x2 >>= e_E12) (r_v31) <- (return r_x3 >>= e_E14) return (r_v21, r_v31, r_v11)) ((,,) r_v5 (Pair r_v1 r_v2) (Pair r_v3 r_v4))) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BNode r_v3 r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E12_0_Pair _ _ _ = S_E12_DEAD mymzero sem_E12_0___ tree = S_E12_6 undefined sem_E12_0___ _ = S_E12_DEAD mymzero sem_E12_1_Cons tree (S_E12_12 t1) (S_E12_11 t2) = S_E12_8 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E12_1_Cons _ _ _ = S_E12_DEAD mymzero sem_E12_1_Nil tree = S_E12_7 (return ()) sem_E12_1_Nil _ = S_E12_DEAD mymzero sem_E12_1___ tree = S_E12_6 undefined sem_E12_1___ _ = S_E12_DEAD mymzero sem_E12_2___ tree = S_E12_11 (return tree) sem_E12_2___ _ = S_E12_DEAD mymzero sem_E12_3___ tree = S_E12_12 (return tree) sem_E12_3___ _ = S_E12_DEAD mymzero sem_E12_4_Nil tree = S_E12_13 (return (), return tree) sem_E12_4_Nil _ = S_E12_DEAD mymzero sem_E12_4___ tree = S_E12_14 (return tree) sem_E12_4___ _ = S_E12_DEAD mymzero data StatesOfE13 e_0 e_DEAD = S_E13_0 e_0 | S_E13_DEAD e_DEAD e_E13 x = case trav_E13_0 x of S_E13_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E13" trav_E13_0 t = sem_E13_0___ t sem_E13_0___ tree = S_E13_0 (return tree) sem_E13_0___ _ = S_E13_DEAD mymzero data StatesOfE14 e_3 e_6 e_7 e_8 e_11 e_12 e_13 e_14 e_DEAD = S_E14_3 e_3 | S_E14_6 e_6 | S_E14_7 e_7 | S_E14_8 e_8 | S_E14_11 e_11 | S_E14_12 e_12 | S_E14_13 e_13 | S_E14_14 e_14 | S_E14_DEAD e_DEAD e_E14 x = case trav_E14_0 x of S_E14_3 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E14" trav_E14_0 (Pair t1 t2) = sem_E14_0_Pair (Pair t1 t2) (trav_E14_4 t1) (trav_E14_1 t2) trav_E14_0 t = sem_E14_0___ t trav_E14_1 (Nil) = sem_E14_1_Nil Nil trav_E14_1 (Cons t1 t2) = sem_E14_1_Cons (Cons t1 t2) (trav_E14_3 t1) (trav_E14_2 t2) trav_E14_1 t = sem_E14_1___ t trav_E14_2 t = sem_E14_2___ t trav_E14_3 t = sem_E14_3___ t trav_E14_4 (Nil) = sem_E14_4_Nil Nil trav_E14_4 t = sem_E14_4___ t sem_E14_0_Pair tree (S_E14_13 t1) (S_E14_7 t2) = S_E14_3 ((\(x1_1, x1_2) (x2_1) -> (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)) BLeaf) tmp_r1 tmp_r2)) t1 t2) sem_E14_0_Pair tree (S_E14_13 t1) (S_E14_8 t2) = S_E14_3 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E31) return (r_v11, r_v12, r_v13, r_v14, r_v15)) (Pair r_v3 (Pair r_v1 r_v2))) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- (return r_x2 >>= e_E12) (r_v31) <- (return r_x3 >>= e_E14) return (r_v21, r_v31, r_v11)) ((,,) r_v5 (Pair r_v1 r_v2) (Pair r_v3 r_v4))) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BNode r_v3 r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E14_0_Pair tree (S_E14_14 t1) (S_E14_8 t2) = S_E14_3 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E31) return (r_v11, r_v12, r_v13, r_v14, r_v15)) (Pair r_v3 (Pair r_v1 r_v2))) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- (return r_x2 >>= e_E12) (r_v31) <- (return r_x3 >>= e_E14) return (r_v21, r_v31, r_v11)) ((,,) r_v5 (Pair r_v1 r_v2) (Pair r_v3 r_v4))) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BNode r_v3 r_v1 r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E14_0_Pair _ _ _ = S_E14_DEAD mymzero sem_E14_0___ tree = S_E14_6 undefined sem_E14_0___ _ = S_E14_DEAD mymzero sem_E14_1_Cons tree (S_E14_12 t1) (S_E14_11 t2) = S_E14_8 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E14_1_Cons _ _ _ = S_E14_DEAD mymzero sem_E14_1_Nil tree = S_E14_7 (return ()) sem_E14_1_Nil _ = S_E14_DEAD mymzero sem_E14_1___ tree = S_E14_6 undefined sem_E14_1___ _ = S_E14_DEAD mymzero sem_E14_2___ tree = S_E14_11 (return tree) sem_E14_2___ _ = S_E14_DEAD mymzero sem_E14_3___ tree = S_E14_12 (return tree) sem_E14_3___ _ = S_E14_DEAD mymzero sem_E14_4_Nil tree = S_E14_13 (return (), return tree) sem_E14_4_Nil _ = S_E14_DEAD mymzero sem_E14_4___ tree = S_E14_14 (return tree) sem_E14_4___ _ = S_E14_DEAD mymzero data StatesOfE15 e_0 e_DEAD = S_E15_0 e_0 | S_E15_DEAD e_DEAD e_E15 x = case trav_E15_0 x of S_E15_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E15" trav_E15_0 t = sem_E15_0___ t sem_E15_0___ tree = S_E15_0 (return tree) sem_E15_0___ _ = S_E15_DEAD mymzero data StatesOfE31 e_1 e_6 e_7 e_11 e_12 e_15 e_16 e_17 e_18 e_21 e_22 e_23 e_DEAD = S_E31_1 e_1 | S_E31_6 e_6 | S_E31_7 e_7 | S_E31_11 e_11 | S_E31_12 e_12 | S_E31_15 e_15 | S_E31_16 e_16 | S_E31_17 e_17 | S_E31_18 e_18 | S_E31_21 e_21 | S_E31_22 e_22 | S_E31_23 e_23 | S_E31_DEAD e_DEAD e_E31 x = case trav_E31_0 x of S_E31_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E31" trav_E31_0 (Pair t1 t2) = sem_E31_0_Pair (Pair t1 t2) (trav_E31_8 t1) (trav_E31_1 t2) trav_E31_0 t = sem_E31_0___ t trav_E31_1 (Pair t1 t2) = sem_E31_1_Pair (Pair t1 t2) (trav_E31_5 t1) (trav_E31_2 t2) trav_E31_1 t = sem_E31_1___ t trav_E31_2 (Cons t1 t2) = sem_E31_2_Cons (Cons t1 t2) (trav_E31_4 t1) (trav_E31_3 t2) trav_E31_2 t = sem_E31_2___ t trav_E31_3 t = sem_E31_3___ t trav_E31_4 t = sem_E31_4___ t trav_E31_5 (Cons t1 t2) = sem_E31_5_Cons (Cons t1 t2) (trav_E31_7 t1) (trav_E31_6 t2) trav_E31_5 t = sem_E31_5___ t trav_E31_6 t = sem_E31_6___ t trav_E31_7 t = sem_E31_7___ t trav_E31_8 t = sem_E31_8___ t sem_E31_0_Pair tree (S_E31_23 t1) (S_E31_6 t2) = S_E31_1 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22, r_v23) -> do tv3 <- checkEqPrim r_v11 r_v23 let tv2 = r_v22 let tv1 = r_v21 return (tv1, tv2, tv3)) (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21, r_v22) <- (return r_x2 >>= e_E33) (r_v31, r_v32) <- (return r_x3 >>= e_E36) return (r_v21, r_v22, r_v31, r_v32, r_v11)) ((,,) r_v3 (Pair Nil Nil) (Pair r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E31_0_Pair tree (S_E31_23 t1) (S_E31_7 t2) = S_E31_1 ((\(x1_1, x1_2) (x2_1, x2_2) -> (mymplus (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22, r_v23) -> do tv3 <- checkEqPrim r_v11 r_v23 let tv2 = r_v22 let tv1 = r_v21 return (tv1, tv2, tv3)) (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21, r_v22) <- (return r_x2 >>= e_E33) (r_v31, r_v32) <- (return r_x3 >>= e_E36) return (r_v21, r_v22, r_v31, r_v32, r_v11)) ((,,) r_v3 (Pair Nil Nil) (Pair r_v1 r_v2))) tmp_r1 tmp_r2) (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, r_v24) -> return (r_v21, r_v22, r_v11, r_v23, r_v24)) ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E86) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v13, r_v14, r_v15, r_v21, r_v31)) ((,,) (Pair r_v3 (Pair r_v1 r_v2)) r_v4 r_v5)) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5, r_v6, r_v7) -> (\(r_x1, r_x2, r_x3, r_x4, r_x5, r_x6) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E76) (r_v21) <- return r_x2 (r_v31) <- return r_x3 (r_v41) <- return r_x4 (r_v51) <- return r_x5 (r_v61) <- return r_x6 return (r_v21, r_v31, r_v41, r_v51, r_v11, r_v12, r_v61)) ((,,,,,) (Pair r_v5 r_v6) r_v1 r_v2 r_v3 r_v4 r_v7)) >=> (\(r_v1, r_v2, r_v3, r_v4, r_v5, r_v6, r_v7) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21, r_v22) <- (return r_x2 >>= e_E33) (r_v31, r_v32) <- (return r_x3 >>= e_E36) return (r_v21, r_v22, r_v31, r_v32, r_v11)) ((,,) r_v5 (Pair (Cons r_v6 r_v1) (Cons r_v7 r_v2)) (Pair r_v3 r_v4))))) tmp_r1 tmp_r2))) t1 t2) sem_E31_0_Pair _ _ _ = S_E31_DEAD mymzero sem_E31_0___ tree = S_E31_17 undefined sem_E31_0___ _ = S_E31_DEAD mymzero sem_E31_1_Pair tree (S_E31_18 t1) (S_E31_11 t2) = S_E31_6 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v21, r_v12)) tmp_r1 tmp_r2)) t1 t2) sem_E31_1_Pair tree (S_E31_18 t1) (S_E31_12 t2) = S_E31_7 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v21, r_v12)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\(r_v11, r_v12) (r_v21, r_v22) -> return (r_v11, r_v21, r_v12, r_v22)) tmp_r1 tmp_r2)) t1 t2) sem_E31_1_Pair _ _ _ = S_E31_DEAD mymzero sem_E31_1___ tree = S_E31_17 undefined sem_E31_1___ _ = S_E31_DEAD mymzero sem_E31_2_Cons tree (S_E31_16 t1) (S_E31_15 t2) = S_E31_12 ((\(x1_1) (x2_1) -> (return tree, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E31_2_Cons _ _ _ = S_E31_DEAD mymzero sem_E31_2___ tree = S_E31_11 (return tree) sem_E31_2___ _ = S_E31_DEAD mymzero sem_E31_3___ tree = S_E31_15 (return tree) sem_E31_3___ _ = S_E31_DEAD mymzero sem_E31_4___ tree = S_E31_16 (return tree) sem_E31_4___ _ = S_E31_DEAD mymzero sem_E31_5_Cons tree (S_E31_22 t1) (S_E31_21 t2) = S_E31_18 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E31_5_Cons _ _ _ = S_E31_DEAD mymzero sem_E31_5___ tree = S_E31_17 undefined sem_E31_5___ _ = S_E31_DEAD mymzero sem_E31_6___ tree = S_E31_21 (return tree, return tree) sem_E31_6___ _ = S_E31_DEAD mymzero sem_E31_7___ tree = S_E31_22 (return tree, return tree) sem_E31_7___ _ = S_E31_DEAD mymzero sem_E31_8___ tree = S_E31_23 (return tree, return tree) sem_E31_8___ _ = S_E31_DEAD mymzero data StatesOfE32 e_0 e_DEAD = S_E32_0 e_0 | S_E32_DEAD e_DEAD 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) sem_E32_0___ _ = S_E32_DEAD mymzero data StatesOfE33 e_0 e_1 e_4 e_5 e_DEAD = S_E33_0 e_0 | S_E33_1 e_1 | S_E33_4 e_4 | S_E33_5 e_5 | S_E33_DEAD e_DEAD e_E33 x = case trav_E33_0 x of S_E33_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E33" trav_E33_0 (Pair t1 t2) = sem_E33_0_Pair (Pair t1 t2) (trav_E33_2 t1) (trav_E33_1 t2) trav_E33_0 t = sem_E33_0___ t trav_E33_1 t = sem_E33_1___ t trav_E33_2 t = sem_E33_2___ t sem_E33_0_Pair tree (S_E33_5 t1) (S_E33_4 t2) = S_E33_1 ((\(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_E33_0_Pair _ _ _ = S_E33_DEAD mymzero sem_E33_0___ tree = S_E33_0 undefined sem_E33_0___ _ = S_E33_DEAD mymzero sem_E33_1___ tree = S_E33_4 (return tree) sem_E33_1___ _ = S_E33_DEAD mymzero sem_E33_2___ tree = S_E33_5 (return tree) sem_E33_2___ _ = S_E33_DEAD mymzero data StatesOfE36 e_0 e_1 e_4 e_5 e_DEAD = S_E36_0 e_0 | S_E36_1 e_1 | S_E36_4 e_4 | S_E36_5 e_5 | S_E36_DEAD e_DEAD e_E36 x = case trav_E36_0 x of S_E36_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E36" trav_E36_0 (Pair t1 t2) = sem_E36_0_Pair (Pair t1 t2) (trav_E36_2 t1) (trav_E36_1 t2) trav_E36_0 t = sem_E36_0___ t trav_E36_1 t = sem_E36_1___ t trav_E36_2 t = sem_E36_2___ t sem_E36_0_Pair tree (S_E36_5 t1) (S_E36_4 t2) = S_E36_1 ((\(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_E36_0_Pair _ _ _ = S_E36_DEAD mymzero sem_E36_0___ tree = S_E36_0 undefined sem_E36_0___ _ = S_E36_DEAD mymzero sem_E36_1___ tree = S_E36_4 (return tree) sem_E36_1___ _ = S_E36_DEAD mymzero sem_E36_2___ tree = S_E36_5 (return tree) sem_E36_2___ _ = S_E36_DEAD mymzero data StatesOfE76 e_1 e_7 e_9 e_10 e_11 e_12 e_13 e_15 e_DEAD = S_E76_1 e_1 | S_E76_7 e_7 | S_E76_9 e_9 | S_E76_10 e_10 | S_E76_11 e_11 | S_E76_12 e_12 | S_E76_13 e_13 | S_E76_15 e_15 | S_E76_DEAD e_DEAD e_E76 x = case trav_E76_0 x of S_E76_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E76" trav_E76_0 (Pair t1 t2) = sem_E76_0_Pair (Pair t1 t2) (trav_E76_3 t1) (trav_E76_1 t2) trav_E76_0 t = sem_E76_0___ t trav_E76_1 (Z) = sem_E76_1_Z Z trav_E76_1 (S t1) = sem_E76_1_S (S t1) (trav_E76_2 t1) trav_E76_1 t = sem_E76_1___ t trav_E76_2 t = sem_E76_2___ t trav_E76_3 (Z) = sem_E76_3_Z Z trav_E76_3 (S t1) = sem_E76_3_S (S t1) (trav_E76_4 t1) trav_E76_3 t = sem_E76_3___ t trav_E76_4 t = sem_E76_4___ t sem_E76_0_Pair tree (S_E76_12 t1) (S_E76_7 t2) = S_E76_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_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) Z (S r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E76_0_Pair tree (S_E76_13 t1) (S_E76_7 t2) = S_E76_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) -> return (r_v11, r_v21)) ((\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E143) return (r_v11, r_v12)) (Pair r_v1 r_v2)) >=> (\(r_v1, r_v2) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (S r_v1) (S r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E76_0_Pair tree (S_E76_13 t1) (S_E76_9 t2) = S_E76_1 ((\(x1_1, x1_2) (x2_1) -> (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 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (S r_v1) Z)) tmp_r1 tmp_r2)) t1 t2) sem_E76_0_Pair _ _ _ = S_E76_DEAD mymzero sem_E76_0___ tree = S_E76_11 undefined sem_E76_0___ _ = S_E76_DEAD mymzero sem_E76_1_S tree (S_E76_10 t1) = S_E76_7 ((\(x1_1, x1_2) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1, do tmp_r1 <- x1_2 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E76_1_S _ _ = S_E76_DEAD mymzero sem_E76_1_Z tree = S_E76_9 (return ()) sem_E76_1_Z _ = S_E76_DEAD mymzero sem_E76_1___ tree = S_E76_11 undefined sem_E76_1___ _ = S_E76_DEAD mymzero sem_E76_2___ tree = S_E76_10 (return tree, return tree) sem_E76_2___ _ = S_E76_DEAD mymzero sem_E76_3_S tree (S_E76_15 t1) = S_E76_13 ((\(x1_1, x1_2) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1, do tmp_r1 <- x1_2 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E76_3_S _ _ = S_E76_DEAD mymzero sem_E76_3_Z tree = S_E76_12 (return ()) sem_E76_3_Z _ = S_E76_DEAD mymzero sem_E76_3___ tree = S_E76_11 undefined sem_E76_3___ _ = S_E76_DEAD mymzero sem_E76_4___ tree = S_E76_15 (return tree, return tree) sem_E76_4___ _ = S_E76_DEAD mymzero data StatesOfE77 e_0 e_DEAD = S_E77_0 e_0 | S_E77_DEAD e_DEAD e_E77 x = case trav_E77_0 x of S_E77_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E77" trav_E77_0 t = sem_E77_0___ t sem_E77_0___ tree = S_E77_0 (return tree) sem_E77_0___ _ = S_E77_DEAD mymzero data StatesOfE78 e_0 e_DEAD = S_E78_0 e_0 | S_E78_DEAD e_DEAD e_E78 x = case trav_E78_0 x of S_E78_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E78" trav_E78_0 t = sem_E78_0___ t sem_E78_0___ tree = S_E78_0 (return tree) sem_E78_0___ _ = S_E78_DEAD mymzero data StatesOfE86 e_4 e_6 e_7 e_11 e_12 e_15 e_16 e_17 e_18 e_21 e_22 e_23 e_DEAD = S_E86_4 e_4 | S_E86_6 e_6 | S_E86_7 e_7 | S_E86_11 e_11 | S_E86_12 e_12 | S_E86_15 e_15 | S_E86_16 e_16 | S_E86_17 e_17 | S_E86_18 e_18 | S_E86_21 e_21 | S_E86_22 e_22 | S_E86_23 e_23 | S_E86_DEAD e_DEAD e_E86 x = case trav_E86_0 x of S_E86_4 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E86" trav_E86_0 (Pair t1 t2) = sem_E86_0_Pair (Pair t1 t2) (trav_E86_8 t1) (trav_E86_1 t2) trav_E86_0 t = sem_E86_0___ t trav_E86_1 (Pair t1 t2) = sem_E86_1_Pair (Pair t1 t2) (trav_E86_5 t1) (trav_E86_2 t2) trav_E86_1 t = sem_E86_1___ t trav_E86_2 (Cons t1 t2) = sem_E86_2_Cons (Cons t1 t2) (trav_E86_4 t1) (trav_E86_3 t2) trav_E86_2 t = sem_E86_2___ t trav_E86_3 t = sem_E86_3___ t trav_E86_4 t = sem_E86_4___ t trav_E86_5 (Cons t1 t2) = sem_E86_5_Cons (Cons t1 t2) (trav_E86_7 t1) (trav_E86_6 t2) trav_E86_5 t = sem_E86_5___ t trav_E86_6 t = sem_E86_6___ t trav_E86_7 t = sem_E86_7___ t trav_E86_8 t = sem_E86_8___ t sem_E86_0_Pair tree (S_E86_23 t1) (S_E86_6 t2) = S_E86_4 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22, r_v23) -> do tv3 <- checkEqPrim r_v11 r_v23 let tv2 = r_v22 let tv1 = r_v21 return (tv1, tv2, tv3)) (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21, r_v22) <- (return r_x2 >>= e_E88) (r_v31, r_v32) <- (return r_x3 >>= e_E91) return (r_v21, r_v22, r_v31, r_v32, r_v11)) ((,,) r_v3 (Pair Nil Nil) (Pair r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E86_0_Pair tree (S_E86_23 t1) (S_E86_7 t2) = S_E86_4 ((\(x1_1, x1_2) (x2_1, x2_2) -> (mymplus (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) (r_v21, r_v22, r_v23) -> do tv3 <- checkEqPrim r_v11 r_v23 let tv2 = r_v22 let tv1 = r_v21 return (tv1, tv2, tv3)) (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21, r_v22) <- (return r_x2 >>= e_E88) (r_v31, r_v32) <- (return r_x3 >>= e_E91) return (r_v21, r_v22, r_v31, r_v32, r_v11)) ((,,) r_v3 (Pair Nil Nil) (Pair r_v1 r_v2))) tmp_r1 tmp_r2) (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, r_v24) -> return (r_v21, r_v22, r_v11, r_v23, r_v24)) ((\(r_v1, r_v2, r_v3, r_v4, r_v5) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12, r_v13, r_v14, r_v15) <- (return r_x1 >>= e_E86) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v12, r_v13, r_v14, r_v15, r_v21, r_v31)) ((,,) (Pair r_v3 (Pair r_v1 r_v2)) r_v4 r_v5)) >=> ((\(r_v1, r_v2, r_v3, r_v4, r_v5, r_v6, r_v7) -> (\(r_x1, r_x2, r_x3, r_x4, r_x5, r_x6) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E76) (r_v21) <- return r_x2 (r_v31) <- return r_x3 (r_v41) <- return r_x4 (r_v51) <- return r_x5 (r_v61) <- return r_x6 return (r_v21, r_v31, r_v41, r_v51, r_v11, r_v12, r_v61)) ((,,,,,) (Pair r_v5 r_v6) r_v1 r_v2 r_v3 r_v4 r_v7)) >=> (\(r_v1, r_v2, r_v3, r_v4, r_v5, r_v6, r_v7) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21, r_v22) <- (return r_x2 >>= e_E88) (r_v31, r_v32) <- (return r_x3 >>= e_E91) return (r_v21, r_v22, r_v31, r_v32, r_v11)) ((,,) r_v5 (Pair (Cons r_v6 r_v1) (Cons r_v7 r_v2)) (Pair r_v3 r_v4))))) tmp_r1 tmp_r2))) t1 t2) sem_E86_0_Pair _ _ _ = S_E86_DEAD mymzero sem_E86_0___ tree = S_E86_17 undefined sem_E86_0___ _ = S_E86_DEAD mymzero sem_E86_1_Pair tree (S_E86_18 t1) (S_E86_11 t2) = S_E86_6 ((\(x1_1, x1_2) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v21, r_v12)) tmp_r1 tmp_r2)) t1 t2) sem_E86_1_Pair tree (S_E86_18 t1) (S_E86_12 t2) = S_E86_7 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11, r_v12) (r_v21) -> return (r_v11, r_v21, r_v12)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\(r_v11, r_v12) (r_v21, r_v22) -> return (r_v11, r_v21, r_v12, r_v22)) tmp_r1 tmp_r2)) t1 t2) sem_E86_1_Pair _ _ _ = S_E86_DEAD mymzero sem_E86_1___ tree = S_E86_17 undefined sem_E86_1___ _ = S_E86_DEAD mymzero sem_E86_2_Cons tree (S_E86_16 t1) (S_E86_15 t2) = S_E86_12 ((\(x1_1) (x2_1) -> (return tree, do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E86_2_Cons _ _ _ = S_E86_DEAD mymzero sem_E86_2___ tree = S_E86_11 (return tree) sem_E86_2___ _ = S_E86_DEAD mymzero sem_E86_3___ tree = S_E86_15 (return tree) sem_E86_3___ _ = S_E86_DEAD mymzero sem_E86_4___ tree = S_E86_16 (return tree) sem_E86_4___ _ = S_E86_DEAD mymzero sem_E86_5_Cons tree (S_E86_22 t1) (S_E86_21 t2) = S_E86_18 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2, do tmp_r1 <- x1_2 tmp_r2 <- x2_2 (\(r_v11) (r_v21) -> return (r_v21, r_v11)) tmp_r1 tmp_r2)) t1 t2) sem_E86_5_Cons _ _ _ = S_E86_DEAD mymzero sem_E86_5___ tree = S_E86_17 undefined sem_E86_5___ _ = S_E86_DEAD mymzero sem_E86_6___ tree = S_E86_21 (return tree, return tree) sem_E86_6___ _ = S_E86_DEAD mymzero sem_E86_7___ tree = S_E86_22 (return tree, return tree) sem_E86_7___ _ = S_E86_DEAD mymzero sem_E86_8___ tree = S_E86_23 (return tree, return tree) sem_E86_8___ _ = S_E86_DEAD mymzero data StatesOfE87 e_0 e_DEAD = S_E87_0 e_0 | S_E87_DEAD e_DEAD e_E87 x = case trav_E87_0 x of S_E87_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E87" trav_E87_0 t = sem_E87_0___ t sem_E87_0___ tree = S_E87_0 (return tree) sem_E87_0___ _ = S_E87_DEAD mymzero data StatesOfE88 e_0 e_1 e_4 e_5 e_DEAD = S_E88_0 e_0 | S_E88_1 e_1 | S_E88_4 e_4 | S_E88_5 e_5 | S_E88_DEAD e_DEAD e_E88 x = case trav_E88_0 x of S_E88_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E88" trav_E88_0 (Pair t1 t2) = sem_E88_0_Pair (Pair t1 t2) (trav_E88_2 t1) (trav_E88_1 t2) trav_E88_0 t = sem_E88_0___ t trav_E88_1 t = sem_E88_1___ t trav_E88_2 t = sem_E88_2___ t sem_E88_0_Pair tree (S_E88_5 t1) (S_E88_4 t2) = S_E88_1 ((\(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_E88_0_Pair _ _ _ = S_E88_DEAD mymzero sem_E88_0___ tree = S_E88_0 undefined sem_E88_0___ _ = S_E88_DEAD mymzero sem_E88_1___ tree = S_E88_4 (return tree) sem_E88_1___ _ = S_E88_DEAD mymzero sem_E88_2___ tree = S_E88_5 (return tree) sem_E88_2___ _ = S_E88_DEAD mymzero data StatesOfE91 e_0 e_1 e_4 e_5 e_DEAD = S_E91_0 e_0 | S_E91_1 e_1 | S_E91_4 e_4 | S_E91_5 e_5 | S_E91_DEAD e_DEAD e_E91 x = case trav_E91_0 x of S_E91_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E91" trav_E91_0 (Pair t1 t2) = sem_E91_0_Pair (Pair t1 t2) (trav_E91_2 t1) (trav_E91_1 t2) trav_E91_0 t = sem_E91_0___ t trav_E91_1 t = sem_E91_1___ t trav_E91_2 t = sem_E91_2___ t sem_E91_0_Pair tree (S_E91_5 t1) (S_E91_4 t2) = S_E91_1 ((\(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_E91_0_Pair _ _ _ = S_E91_DEAD mymzero sem_E91_0___ tree = S_E91_0 undefined sem_E91_0___ _ = S_E91_DEAD mymzero sem_E91_1___ tree = S_E91_4 (return tree) sem_E91_1___ _ = S_E91_DEAD mymzero sem_E91_2___ tree = S_E91_5 (return tree) sem_E91_2___ _ = S_E91_DEAD mymzero data StatesOfE103 e_0 e_DEAD = S_E103_0 e_0 | S_E103_DEAD e_DEAD e_E103 x = case trav_E103_0 x of S_E103_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E103" trav_E103_0 t = sem_E103_0___ t sem_E103_0___ tree = S_E103_0 (return tree) sem_E103_0___ _ = S_E103_DEAD mymzero data StatesOfE104 e_0 e_DEAD = S_E104_0 e_0 | S_E104_DEAD e_DEAD e_E104 x = case trav_E104_0 x of S_E104_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E104" trav_E104_0 t = sem_E104_0___ t sem_E104_0___ tree = S_E104_0 (return tree) sem_E104_0___ _ = S_E104_DEAD mymzero data StatesOfE107 e_0 e_DEAD = S_E107_0 e_0 | S_E107_DEAD e_DEAD e_E107 x = case trav_E107_0 x of S_E107_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E107" trav_E107_0 t = sem_E107_0___ t sem_E107_0___ tree = S_E107_0 (return tree) sem_E107_0___ _ = S_E107_DEAD mymzero data StatesOfE108 e_0 e_DEAD = S_E108_0 e_0 | S_E108_DEAD e_DEAD e_E108 x = case trav_E108_0 x of S_E108_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E108" trav_E108_0 t = sem_E108_0___ t sem_E108_0___ tree = S_E108_0 (return tree) sem_E108_0___ _ = S_E108_DEAD mymzero data StatesOfE109 e_0 e_DEAD = S_E109_0 e_0 | S_E109_DEAD e_DEAD e_E109 x = case trav_E109_0 x of S_E109_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E109" trav_E109_0 t = sem_E109_0___ t sem_E109_0___ tree = S_E109_0 (return tree) sem_E109_0___ _ = S_E109_DEAD mymzero data StatesOfE110 e_0 e_DEAD = S_E110_0 e_0 | S_E110_DEAD e_DEAD e_E110 x = case trav_E110_0 x of S_E110_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E110" trav_E110_0 t = sem_E110_0___ t sem_E110_0___ tree = S_E110_0 (return tree) sem_E110_0___ _ = S_E110_DEAD mymzero data StatesOfE111 e_0 e_DEAD = S_E111_0 e_0 | S_E111_DEAD e_DEAD e_E111 x = case trav_E111_0 x of S_E111_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E111" trav_E111_0 t = sem_E111_0___ t sem_E111_0___ tree = S_E111_0 (return tree) sem_E111_0___ _ = S_E111_DEAD mymzero data StatesOfE143 e_5 e_7 e_9 e_10 e_11 e_12 e_13 e_15 e_DEAD = S_E143_5 e_5 | S_E143_7 e_7 | S_E143_9 e_9 | S_E143_10 e_10 | S_E143_11 e_11 | S_E143_12 e_12 | S_E143_13 e_13 | S_E143_15 e_15 | S_E143_DEAD e_DEAD e_E143 x = case trav_E143_0 x of S_E143_5 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E143" trav_E143_0 (Pair t1 t2) = sem_E143_0_Pair (Pair t1 t2) (trav_E143_3 t1) (trav_E143_1 t2) trav_E143_0 t = sem_E143_0___ t trav_E143_1 (Z) = sem_E143_1_Z Z trav_E143_1 (S t1) = sem_E143_1_S (S t1) (trav_E143_2 t1) trav_E143_1 t = sem_E143_1___ t trav_E143_2 t = sem_E143_2___ t trav_E143_3 (Z) = sem_E143_3_Z Z trav_E143_3 (S t1) = sem_E143_3_S (S t1) (trav_E143_4 t1) trav_E143_3 t = sem_E143_3___ t trav_E143_4 t = sem_E143_4___ t sem_E143_0_Pair tree (S_E143_12 t1) (S_E143_7 t2) = S_E143_5 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\f g m1 m2 -> f m1 m2 >>= g) (\() (r_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) Z (S r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E143_0_Pair tree (S_E143_13 t1) (S_E143_7 t2) = S_E143_5 ((\(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) -> return (r_v11, r_v21)) ((\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E143) return (r_v11, r_v12)) (Pair r_v1 r_v2)) >=> (\(r_v1, r_v2) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (S r_v1) (S r_v2)))) tmp_r1 tmp_r2)) t1 t2) sem_E143_0_Pair tree (S_E143_13 t1) (S_E143_9 t2) = S_E143_5 ((\(x1_1, x1_2) (x2_1) -> (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 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (S r_v1) Z)) tmp_r1 tmp_r2)) t1 t2) sem_E143_0_Pair _ _ _ = S_E143_DEAD mymzero sem_E143_0___ tree = S_E143_11 undefined sem_E143_0___ _ = S_E143_DEAD mymzero sem_E143_1_S tree (S_E143_10 t1) = S_E143_7 ((\(x1_1, x1_2) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1, do tmp_r1 <- x1_2 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E143_1_S _ _ = S_E143_DEAD mymzero sem_E143_1_Z tree = S_E143_9 (return ()) sem_E143_1_Z _ = S_E143_DEAD mymzero sem_E143_1___ tree = S_E143_11 undefined sem_E143_1___ _ = S_E143_DEAD mymzero sem_E143_2___ tree = S_E143_10 (return tree, return tree) sem_E143_2___ _ = S_E143_DEAD mymzero sem_E143_3_S tree (S_E143_15 t1) = S_E143_13 ((\(x1_1, x1_2) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1, do tmp_r1 <- x1_2 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E143_3_S _ _ = S_E143_DEAD mymzero sem_E143_3_Z tree = S_E143_12 (return ()) sem_E143_3_Z _ = S_E143_DEAD mymzero sem_E143_3___ tree = S_E143_11 undefined sem_E143_3___ _ = S_E143_DEAD mymzero sem_E143_4___ tree = S_E143_15 (return tree, return tree) sem_E143_4___ _ = S_E143_DEAD mymzero data StatesOfE144 e_0 e_DEAD = S_E144_0 e_0 | S_E144_DEAD e_DEAD e_E144 x = case trav_E144_0 x of S_E144_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E144" trav_E144_0 t = sem_E144_0___ t sem_E144_0___ tree = S_E144_0 (return tree) sem_E144_0___ _ = S_E144_DEAD mymzero data StatesOfE145 e_0 e_DEAD = S_E145_0 e_0 | S_E145_DEAD e_DEAD e_E145 x = case trav_E145_0 x of S_E145_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E145" trav_E145_0 t = sem_E145_0___ t sem_E145_0___ tree = S_E145_0 (return tree) sem_E145_0___ _ = S_E145_DEAD mymzero inpre (BLeaf) = Pair Nil Nil inpre (BNode v l r) = dappend v (inpre l) (inpre r) dappend v (Pair li lp) (Pair ri rp) = letAt24 (dapp_body v (Pair li lp) (Pair ri rp)) letAt24 (Pair v (Pair i p)) = Pair i (Cons v p) dapp_body v (Pair (Nil) (Nil)) (Pair ri rp) = Pair v (Pair (Cons v ri) rp) dapp_body v (Pair (Cons x li) (Cons y lp)) (Pair ri rp) = letAt71 (neq v x) li lp ri rp y letAt71 (Pair v1 x1) li lp ri rp y = letAt79 (dapp_body v1 (Pair li lp) (Pair ri rp)) x1 y letAt79 (Pair v2 (Pair i p)) x1 y = Pair v2 (Pair (Cons x1 i) (Cons y p)) neq (Z) (S n) = Pair Z (S n) neq (S m) (Z) = Pair (S m) Z neq (S m) (S n) = letAt138 (neq m n) letAt138 (Pair m1 n1) = Pair (S m1) (S n1)