{-# OPTIONS -XNoMonomorphismRestriction #-} module INPREINJ (inv_Finpre,inpre) where import Control.Monad import InvUtil import Data.Tuple import MyData inv_Finpre = runI . e_Finpre data StatesOfFinpre e_1 e_6 e_7 e_10 e_11 e_12 e_13 e_14 e_17 e_18 = S_Finpre_1 e_1 | S_Finpre_6 e_6 | S_Finpre_7 e_7 | S_Finpre_10 e_10 | S_Finpre_11 e_11 | S_Finpre_12 e_12 | S_Finpre_13 e_13 | S_Finpre_14 e_14 | S_Finpre_17 e_17 | S_Finpre_18 e_18 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 (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 (Cons t1 t2) = sem_Finpre_4_Cons (Cons t1 t2) (trav_Finpre_6 t1) (trav_Finpre_5 t2) trav_Finpre_4 t = sem_Finpre_4___ t trav_Finpre_5 t = sem_Finpre_5___ t trav_Finpre_6 t = sem_Finpre_6___ t sem_Finpre_0_Pair tree (S_Finpre_13 t1) (S_Finpre_6 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_v21) -> return (r_v21)) (\(r_v1) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 () <- (return r_x2 >>= e_E4) return (r_v11)) ((,) BLeaf r_v1) >>= (\(r_v1) -> return r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_0_Pair tree (S_Finpre_13 t1) (S_Finpre_7 t2) = S_Finpre_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 () <- (return r_x2 >>= e_E4) return (r_v11)) ((,) BLeaf r_v1) >>= (\(r_v1) -> return r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_0_Pair tree (S_Finpre_14 t1) (S_Finpre_7 t2) = S_Finpre_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, r_v22) -> return (r_v11, r_v12, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E50) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v13, r_v21)) ((,) (Pair (Cons r_v1 r_v2) r_v3) r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E39) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v13, r_v21)) ((,) (Pair3 r_v2 r_v3 r_v1) r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E30) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v21, r_v31, r_v12)) ((,,) (Pair r_v1 r_v4) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E22) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v21, r_v11, r_v31, r_v12)) ((,,) (Pair r_v2 r_v4) r_v1 r_v3)) >=> (\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 () <- (return r_x2 >>= e_E4) return (r_v11)) ((,) (BNode r_v3 r_v1 r_v2) r_v4) >>= (\(r_v1) -> return r_v1)))))) tmp_r1 tmp_r2)) t1 t2) sem_Finpre_0___ tree = S_Finpre_12 undefined sem_Finpre_1_Cons tree (S_Finpre_11 t1) (S_Finpre_10 t2) = S_Finpre_7 ((\(x1_1) (x2_1) -> (return tree, 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_Finpre_1___ tree = S_Finpre_6 (return tree) sem_Finpre_2___ tree = S_Finpre_10 (return tree) sem_Finpre_3___ tree = S_Finpre_11 (return tree) sem_Finpre_4_Cons tree (S_Finpre_18 t1) (S_Finpre_17 t2) = S_Finpre_14 ((\(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_Finpre_4_Nil tree = S_Finpre_13 (return ()) sem_Finpre_4___ tree = S_Finpre_12 undefined sem_Finpre_5___ tree = S_Finpre_17 (return tree) sem_Finpre_6___ tree = S_Finpre_18 (return tree) data StatesOfE3 e_0 = S_E3_0 e_0 e_E3 x = case trav_E3_0 x of S_E3_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E3" trav_E3_0 t = sem_E3_0___ t sem_E3_0___ tree = S_E3_0 (return tree) data StatesOfE4 e_0 e_1 = S_E4_0 e_0 | S_E4_1 e_1 e_E4 x = case trav_E4_0 x of S_E4_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E4" trav_E4_0 (Nil) = sem_E4_0_Nil Nil trav_E4_0 t = sem_E4_0___ t sem_E4_0_Nil tree = S_E4_1 (return ()) sem_E4_0___ tree = S_E4_0 undefined data StatesOfE22 e_4 e_6 e_7 e_10 e_11 e_12 e_13 e_14 e_17 e_18 = S_E22_4 e_4 | S_E22_6 e_6 | S_E22_7 e_7 | S_E22_10 e_10 | S_E22_11 e_11 | S_E22_12 e_12 | S_E22_13 e_13 | S_E22_14 e_14 | S_E22_17 e_17 | S_E22_18 e_18 e_E22 x = case trav_E22_0 x of S_E22_4 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E22" trav_E22_0 (Pair t1 t2) = sem_E22_0_Pair (Pair t1 t2) (trav_E22_4 t1) (trav_E22_1 t2) trav_E22_0 t = sem_E22_0___ t trav_E22_1 (Cons t1 t2) = sem_E22_1_Cons (Cons t1 t2) (trav_E22_3 t1) (trav_E22_2 t2) trav_E22_1 t = sem_E22_1___ t trav_E22_2 t = sem_E22_2___ t trav_E22_3 t = sem_E22_3___ t trav_E22_4 (Nil) = sem_E22_4_Nil Nil trav_E22_4 (Cons t1 t2) = sem_E22_4_Cons (Cons t1 t2) (trav_E22_6 t1) (trav_E22_5 t2) trav_E22_4 t = sem_E22_4___ t trav_E22_5 t = sem_E22_5___ t trav_E22_6 t = sem_E22_6___ t sem_E22_0_Pair tree (S_E22_13 t1) (S_E22_6 t2) = S_E22_4 ((\(x1_1) (x2_1) -> (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)) ((,) BLeaf r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E22_0_Pair tree (S_E22_13 t1) (S_E22_7 t2) = S_E22_4 ((\(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)) ((,) BLeaf r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E22_0_Pair tree (S_E22_14 t1) (S_E22_7 t2) = S_E22_4 ((\(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, r_v22) -> return (r_v11, r_v12, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E50) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v13, r_v21)) ((,) (Pair (Cons r_v1 r_v2) r_v3) r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E39) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v13, r_v21)) ((,) (Pair3 r_v2 r_v3 r_v1) r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E30) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v21, r_v31, r_v12)) ((,,) (Pair r_v1 r_v4) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E22) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v21, r_v11, r_v31, r_v12)) ((,,) (Pair r_v2 r_v4) r_v1 r_v3)) >=> (\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (BNode r_v3 r_v1 r_v2) r_v4)))))) tmp_r1 tmp_r2)) t1 t2) sem_E22_0___ tree = S_E22_12 undefined sem_E22_1_Cons tree (S_E22_11 t1) (S_E22_10 t2) = S_E22_7 ((\(x1_1) (x2_1) -> (return tree, 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_E22_1___ tree = S_E22_6 (return tree) sem_E22_2___ tree = S_E22_10 (return tree) sem_E22_3___ tree = S_E22_11 (return tree) sem_E22_4_Cons tree (S_E22_18 t1) (S_E22_17 t2) = S_E22_14 ((\(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_E22_4_Nil tree = S_E22_13 (return ()) sem_E22_4___ tree = S_E22_12 undefined sem_E22_5___ tree = S_E22_17 (return tree) sem_E22_6___ tree = S_E22_18 (return tree) data StatesOfE23 e_0 = S_E23_0 e_0 e_E23 x = case trav_E23_0 x of S_E23_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E23" trav_E23_0 t = sem_E23_0___ t sem_E23_0___ tree = S_E23_0 (return tree) data StatesOfE24 e_0 = S_E24_0 e_0 e_E24 x = case trav_E24_0 x of S_E24_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E24" trav_E24_0 t = sem_E24_0___ t sem_E24_0___ tree = S_E24_0 (return tree) data StatesOfE30 e_4 e_6 e_7 e_10 e_11 e_12 e_13 e_14 e_17 e_18 = S_E30_4 e_4 | S_E30_6 e_6 | S_E30_7 e_7 | S_E30_10 e_10 | S_E30_11 e_11 | S_E30_12 e_12 | S_E30_13 e_13 | S_E30_14 e_14 | S_E30_17 e_17 | S_E30_18 e_18 e_E30 x = case trav_E30_0 x of S_E30_4 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E30" trav_E30_0 (Pair t1 t2) = sem_E30_0_Pair (Pair t1 t2) (trav_E30_4 t1) (trav_E30_1 t2) trav_E30_0 t = sem_E30_0___ t trav_E30_1 (Cons t1 t2) = sem_E30_1_Cons (Cons t1 t2) (trav_E30_3 t1) (trav_E30_2 t2) trav_E30_1 t = sem_E30_1___ t trav_E30_2 t = sem_E30_2___ t trav_E30_3 t = sem_E30_3___ t trav_E30_4 (Nil) = sem_E30_4_Nil Nil trav_E30_4 (Cons t1 t2) = sem_E30_4_Cons (Cons t1 t2) (trav_E30_6 t1) (trav_E30_5 t2) trav_E30_4 t = sem_E30_4___ t trav_E30_5 t = sem_E30_5___ t trav_E30_6 t = sem_E30_6___ t sem_E30_0_Pair tree (S_E30_13 t1) (S_E30_6 t2) = S_E30_4 ((\(x1_1) (x2_1) -> (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)) ((,) BLeaf r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E30_0_Pair tree (S_E30_13 t1) (S_E30_7 t2) = S_E30_4 ((\(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)) ((,) BLeaf r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E30_0_Pair tree (S_E30_14 t1) (S_E30_7 t2) = S_E30_4 ((\(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, r_v22) -> return (r_v11, r_v12, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E50) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v13, r_v21)) ((,) (Pair (Cons r_v1 r_v2) r_v3) r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E39) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v13, r_v21)) ((,) (Pair3 r_v2 r_v3 r_v1) r_v4)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E30) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v21, r_v31, r_v12)) ((,,) (Pair r_v1 r_v4) r_v2 r_v3)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E22) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v21, r_v11, r_v31, r_v12)) ((,,) (Pair r_v2 r_v4) r_v1 r_v3)) >=> (\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (BNode r_v3 r_v1 r_v2) r_v4)))))) tmp_r1 tmp_r2)) t1 t2) sem_E30_0___ tree = S_E30_12 undefined sem_E30_1_Cons tree (S_E30_11 t1) (S_E30_10 t2) = S_E30_7 ((\(x1_1) (x2_1) -> (return tree, 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_E30_1___ tree = S_E30_6 (return tree) sem_E30_2___ tree = S_E30_10 (return tree) sem_E30_3___ tree = S_E30_11 (return tree) sem_E30_4_Cons tree (S_E30_18 t1) (S_E30_17 t2) = S_E30_14 ((\(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_E30_4_Nil tree = S_E30_13 (return ()) sem_E30_4___ tree = S_E30_12 undefined sem_E30_5___ tree = S_E30_17 (return tree) sem_E30_6___ tree = S_E30_18 (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 StatesOfE39 e_1 e_7 e_10 e_12 e_14 e_15 e_16 e_17 e_18 e_21 e_22 = S_E39_1 e_1 | S_E39_7 e_7 | S_E39_10 e_10 | S_E39_12 e_12 | S_E39_14 e_14 | S_E39_15 e_15 | S_E39_16 e_16 | S_E39_17 e_17 | S_E39_18 e_18 | S_E39_21 e_21 | S_E39_22 e_22 e_E39 x = case trav_E39_0 x of S_E39_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E39" trav_E39_0 (Pair3 t1 t2 t3) = sem_E39_0_Pair3 (Pair3 t1 t2 t3) (trav_E39_5 t1) (trav_E39_4 t2) (trav_E39_1 t3) trav_E39_0 t = sem_E39_0___ t trav_E39_1 (Cons t1 t2) = sem_E39_1_Cons (Cons t1 t2) (trav_E39_3 t1) (trav_E39_2 t2) trav_E39_1 t = sem_E39_1___ t trav_E39_2 t = sem_E39_2___ t trav_E39_3 (True) = sem_E39_3_True True trav_E39_3 (False) = sem_E39_3_False False trav_E39_3 t = sem_E39_3___ t trav_E39_4 t = sem_E39_4___ t trav_E39_5 (Cons t1 t2) = sem_E39_5_Cons (Cons t1 t2) (trav_E39_7 t1) (trav_E39_6 t2) trav_E39_5 t = sem_E39_5___ t trav_E39_6 t = sem_E39_6___ t trav_E39_7 t = sem_E39_7___ t sem_E39_0_Pair3 tree (S_E39_18 t1) (S_E39_16 t2) (S_E39_7 t3) = S_E39_1 ((\(x1_1, x1_2) (x2_1, x2_2) (x3_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 tmp_r3 <- x3_1 (\f g m1 m2 m3 -> f m1 m2 m3 >>= g) (\(r_v11, r_v12) (r_v21) (r_v31) -> do tv3 <- checkEqPrim r_v12 r_v21 let tv2 = r_v11 let tv1 = r_v31 return (tv1, tv2, tv3)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E92) (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (Pair r_v2 r_v1) r_v3)) >=> (\(r_v1, r_v2) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v31, r_v21)) ((,,) Nil r_v2 r_v1))) tmp_r1 tmp_r2 tmp_r3)) t1 t2 t3) sem_E39_0_Pair3 tree (S_E39_18 t1) (S_E39_16 t2) (S_E39_10 t3) = S_E39_1 ((\(x1_1, x1_2) (x2_1, x2_2) (x3_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 tmp_r3 <- x3_1 (\f g m1 m2 m3 -> f m1 m2 m3 >>= g) (\(r_v11, r_v12) (r_v21) (r_v31) -> return (r_v31, r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E106) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v21, r_v13)) ((,) (Pair3 r_v3 r_v4 r_v1) r_v2)) >=> (\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v31, r_v21)) ((,,) (Cons r_v3 r_v1) r_v4 r_v2))) tmp_r1 tmp_r2 tmp_r3)) t1 t2 t3) sem_E39_0___ tree = S_E39_17 undefined sem_E39_1_Cons tree (S_E39_14 t1) (S_E39_12 t2) = S_E39_7 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E39_1_Cons tree (S_E39_15 t1) (S_E39_12 t2) = S_E39_10 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E39_1___ tree = S_E39_17 undefined sem_E39_2___ tree = S_E39_12 (return tree, return tree) sem_E39_3_False tree = S_E39_15 (return ()) sem_E39_3_True tree = S_E39_14 (return ()) sem_E39_3___ tree = S_E39_17 undefined sem_E39_4___ tree = S_E39_16 (return tree, return tree) sem_E39_5_Cons tree (S_E39_22 t1) (S_E39_21 t2) = S_E39_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_v11, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E39_5___ tree = S_E39_17 undefined sem_E39_6___ tree = S_E39_21 (return tree, return tree) sem_E39_7___ tree = S_E39_22 (return tree, return tree) data StatesOfE40 e_0 = S_E40_0 e_0 e_E40 x = case trav_E40_0 x of S_E40_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E40" trav_E40_0 t = sem_E40_0___ t sem_E40_0___ tree = S_E40_0 (return tree) data StatesOfE41 e_0 = S_E41_0 e_0 e_E41 x = case trav_E41_0 x of S_E41_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E41" trav_E41_0 t = sem_E41_0___ t sem_E41_0___ tree = S_E41_0 (return tree) data StatesOfE42 e_0 = S_E42_0 e_0 e_E42 x = case trav_E42_0 x of S_E42_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E42" trav_E42_0 t = sem_E42_0___ t sem_E42_0___ tree = S_E42_0 (return tree) data StatesOfE50 e_1 e_5 e_6 e_7 e_8 e_11 e_12 = S_E50_1 e_1 | S_E50_5 e_5 | S_E50_6 e_6 | S_E50_7 e_7 | S_E50_8 e_8 | S_E50_11 e_11 | S_E50_12 e_12 e_E50 x = case trav_E50_0 x of S_E50_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E50" trav_E50_0 (Pair t1 t2) = sem_E50_0_Pair (Pair t1 t2) (trav_E50_2 t1) (trav_E50_1 t2) trav_E50_0 t = sem_E50_0___ t trav_E50_1 t = sem_E50_1___ t trav_E50_2 (Nil) = sem_E50_2_Nil Nil trav_E50_2 (Cons t1 t2) = sem_E50_2_Cons (Cons t1 t2) (trav_E50_4 t1) (trav_E50_3 t2) trav_E50_2 t = sem_E50_2___ t trav_E50_3 t = sem_E50_3___ t trav_E50_4 t = sem_E50_4___ t sem_E50_0_Pair tree (S_E50_7 t1) (S_E50_5 t2) = S_E50_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, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) Nil r_v1 Nil)) tmp_r1 tmp_r2)) t1 t2) sem_E50_0_Pair tree (S_E50_8 t1) (S_E50_5 t2) = S_E50_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) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E174) (r_v21) <- return r_x2 return (r_v11, r_v21, r_v12, r_v13)) ((,) (Pair r_v2 r_v3) r_v1)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E165) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v21, r_v12, r_v31, r_v13)) ((,,) (Pair r_v2 r_v4) r_v1 r_v3)) >=> (\(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 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) (Cons r_v3 r_v4) r_v5 (Cons r_v1 r_v2))))) tmp_r1 tmp_r2)) t1 t2) sem_E50_0___ tree = S_E50_6 undefined sem_E50_1___ tree = S_E50_5 (return tree, return tree) sem_E50_2_Cons tree (S_E50_12 t1) (S_E50_11 t2) = S_E50_8 ((\(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_E50_2_Nil tree = S_E50_7 (return ()) sem_E50_2___ tree = S_E50_6 undefined sem_E50_3___ tree = S_E50_11 (return tree) sem_E50_4___ tree = S_E50_12 (return tree) data StatesOfE51 e_0 = S_E51_0 e_0 e_E51 x = case trav_E51_0 x of S_E51_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E51" trav_E51_0 t = sem_E51_0___ t sem_E51_0___ tree = S_E51_0 (return tree) data StatesOfE52 e_0 = S_E52_0 e_0 e_E52 x = case trav_E52_0 x of S_E52_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E52" trav_E52_0 t = sem_E52_0___ t sem_E52_0___ tree = S_E52_0 (return tree) data StatesOfE53 e_0 = S_E53_0 e_0 e_E53 x = case trav_E53_0 x of S_E53_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E53" trav_E53_0 t = sem_E53_0___ t sem_E53_0___ tree = S_E53_0 (return tree) data StatesOfE61 e_0 = S_E61_0 e_0 e_E61 x = case trav_E61_0 x of S_E61_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E61" trav_E61_0 t = sem_E61_0___ t sem_E61_0___ tree = S_E61_0 (return tree) data StatesOfE63 e_0 = S_E63_0 e_0 e_E63 x = case trav_E63_0 x of S_E63_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E63" trav_E63_0 t = sem_E63_0___ t sem_E63_0___ tree = S_E63_0 (return tree) data StatesOfE65 e_0 = S_E65_0 e_0 e_E65 x = case trav_E65_0 x of S_E65_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E65" trav_E65_0 t = sem_E65_0___ t sem_E65_0___ tree = S_E65_0 (return tree) data StatesOfE66 e_0 = S_E66_0 e_0 e_E66 x = case trav_E66_0 x of S_E66_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E66" trav_E66_0 t = sem_E66_0___ t sem_E66_0___ tree = S_E66_0 (return tree) data StatesOfE69 e_0 = S_E69_0 e_0 e_E69 x = case trav_E69_0 x of S_E69_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E69" trav_E69_0 t = sem_E69_0___ t sem_E69_0___ tree = S_E69_0 (return tree) data StatesOfE70 e_0 = S_E70_0 e_0 e_E70 x = case trav_E70_0 x of S_E70_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E70" trav_E70_0 t = sem_E70_0___ t sem_E70_0___ tree = S_E70_0 (return tree) data StatesOfE92 e_1 e_7 e_8 e_11 e_13 e_14 e_15 e_16 e_19 e_20 = S_E92_1 e_1 | S_E92_7 e_7 | S_E92_8 e_8 | S_E92_11 e_11 | S_E92_13 e_13 | S_E92_14 e_14 | S_E92_15 e_15 | S_E92_16 e_16 | S_E92_19 e_19 | S_E92_20 e_20 e_E92 x = case trav_E92_0 x of S_E92_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E92" trav_E92_0 (Pair t1 t2) = sem_E92_0_Pair (Pair t1 t2) (trav_E92_4 t1) (trav_E92_1 t2) trav_E92_0 t = sem_E92_0___ t trav_E92_1 (Nil) = sem_E92_1_Nil Nil trav_E92_1 (Cons t1 t2) = sem_E92_1_Cons (Cons t1 t2) (trav_E92_3 t1) (trav_E92_2 t2) trav_E92_1 t = sem_E92_1___ t trav_E92_2 t = sem_E92_2___ t trav_E92_3 (False) = sem_E92_3_False False trav_E92_3 t = sem_E92_3___ t trav_E92_4 (Nil) = sem_E92_4_Nil Nil trav_E92_4 (Cons t1 t2) = sem_E92_4_Cons (Cons t1 t2) (trav_E92_6 t1) (trav_E92_5 t2) trav_E92_4 t = sem_E92_4___ t trav_E92_5 t = sem_E92_5___ t trav_E92_6 t = sem_E92_6___ t sem_E92_0_Pair tree (S_E92_16 t1) (S_E92_8 t2) = S_E92_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_v21, r_v12)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E134) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Pair r_v1 r_v2) r_v3)) >=> (\(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_E92_0_Pair tree (S_E92_15 t1) (S_E92_7 t2) = S_E92_1 ((\(x1_1) (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)) Nil) tmp_r1 tmp_r2)) t1 t2) sem_E92_0___ tree = S_E92_14 undefined sem_E92_1_Cons tree (S_E92_13 t1) (S_E92_11 t2) = S_E92_8 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E92_1_Nil tree = S_E92_7 (return ()) sem_E92_1___ tree = S_E92_14 undefined sem_E92_2___ tree = S_E92_11 (return tree) sem_E92_3_False tree = S_E92_13 (return ()) sem_E92_3___ tree = S_E92_14 undefined sem_E92_4_Cons tree (S_E92_20 t1) (S_E92_19 t2) = S_E92_16 ((\(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_E92_4_Nil tree = S_E92_15 (return ()) sem_E92_4___ tree = S_E92_14 undefined sem_E92_5___ tree = S_E92_19 (return tree) sem_E92_6___ tree = S_E92_20 (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 StatesOfE94 e_0 = S_E94_0 e_0 e_E94 x = case trav_E94_0 x of S_E94_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E94" trav_E94_0 t = sem_E94_0___ t sem_E94_0___ tree = S_E94_0 (return tree) data StatesOfE106 e_4 e_7 e_10 e_12 e_14 e_15 e_16 e_17 e_18 e_21 e_22 = S_E106_4 e_4 | S_E106_7 e_7 | S_E106_10 e_10 | S_E106_12 e_12 | S_E106_14 e_14 | S_E106_15 e_15 | S_E106_16 e_16 | S_E106_17 e_17 | S_E106_18 e_18 | S_E106_21 e_21 | S_E106_22 e_22 e_E106 x = case trav_E106_0 x of S_E106_4 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E106" trav_E106_0 (Pair3 t1 t2 t3) = sem_E106_0_Pair3 (Pair3 t1 t2 t3) (trav_E106_5 t1) (trav_E106_4 t2) (trav_E106_1 t3) trav_E106_0 t = sem_E106_0___ t trav_E106_1 (Cons t1 t2) = sem_E106_1_Cons (Cons t1 t2) (trav_E106_3 t1) (trav_E106_2 t2) trav_E106_1 t = sem_E106_1___ t trav_E106_2 t = sem_E106_2___ t trav_E106_3 (True) = sem_E106_3_True True trav_E106_3 (False) = sem_E106_3_False False trav_E106_3 t = sem_E106_3___ t trav_E106_4 t = sem_E106_4___ t trav_E106_5 (Cons t1 t2) = sem_E106_5_Cons (Cons t1 t2) (trav_E106_7 t1) (trav_E106_6 t2) trav_E106_5 t = sem_E106_5___ t trav_E106_6 t = sem_E106_6___ t trav_E106_7 t = sem_E106_7___ t sem_E106_0_Pair3 tree (S_E106_18 t1) (S_E106_16 t2) (S_E106_7 t3) = S_E106_4 ((\(x1_1, x1_2) (x2_1, x2_2) (x3_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 tmp_r3 <- x3_1 (\f g m1 m2 m3 -> f m1 m2 m3 >>= g) (\(r_v11, r_v12) (r_v21) (r_v31) -> do tv3 <- checkEqPrim r_v12 r_v21 let tv2 = r_v11 let tv1 = r_v31 return (tv1, tv2, tv3)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E92) (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (Pair r_v2 r_v1) r_v3)) >=> (\(r_v1, r_v2) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v31, r_v21)) ((,,) Nil r_v2 r_v1))) tmp_r1 tmp_r2 tmp_r3)) t1 t2 t3) sem_E106_0_Pair3 tree (S_E106_18 t1) (S_E106_16 t2) (S_E106_10 t3) = S_E106_4 ((\(x1_1, x1_2) (x2_1, x2_2) (x3_1) -> (do tmp_r1 <- x1_2 tmp_r2 <- x2_2 tmp_r3 <- x3_1 (\f g m1 m2 m3 -> f m1 m2 m3 >>= g) (\(r_v11, r_v12) (r_v21) (r_v31) -> return (r_v31, r_v11, r_v12, r_v21)) ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E106) (r_v21) <- return r_x2 return (r_v11, r_v12, r_v21, r_v13)) ((,) (Pair3 r_v3 r_v4 r_v1) r_v2)) >=> (\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v31, r_v21)) ((,,) (Cons r_v3 r_v1) r_v4 r_v2))) tmp_r1 tmp_r2 tmp_r3)) t1 t2 t3) sem_E106_0___ tree = S_E106_17 undefined sem_E106_1_Cons tree (S_E106_14 t1) (S_E106_12 t2) = S_E106_7 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E106_1_Cons tree (S_E106_15 t1) (S_E106_12 t2) = S_E106_10 ((\(x1_1) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E106_1___ tree = S_E106_17 undefined sem_E106_2___ tree = S_E106_12 (return tree, return tree) sem_E106_3_False tree = S_E106_15 (return ()) sem_E106_3_True tree = S_E106_14 (return ()) sem_E106_3___ tree = S_E106_17 undefined sem_E106_4___ tree = S_E106_16 (return tree, return tree) sem_E106_5_Cons tree (S_E106_22 t1) (S_E106_21 t2) = S_E106_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_v11, r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E106_5___ tree = S_E106_17 undefined sem_E106_6___ tree = S_E106_21 (return tree, return tree) sem_E106_7___ tree = S_E106_22 (return tree, return tree) data StatesOfE107 e_0 = S_E107_0 e_0 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) data StatesOfE108 e_0 = S_E108_0 e_0 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) data StatesOfE109 e_0 = S_E109_0 e_0 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) data StatesOfE118 e_0 = S_E118_0 e_0 e_E118 x = case trav_E118_0 x of S_E118_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E118" trav_E118_0 t = sem_E118_0___ t sem_E118_0___ tree = S_E118_0 (return tree) data StatesOfE134 e_3 e_7 e_8 e_11 e_13 e_14 e_15 e_16 e_19 e_20 = S_E134_3 e_3 | S_E134_7 e_7 | S_E134_8 e_8 | S_E134_11 e_11 | S_E134_13 e_13 | S_E134_14 e_14 | S_E134_15 e_15 | S_E134_16 e_16 | S_E134_19 e_19 | S_E134_20 e_20 e_E134 x = case trav_E134_0 x of S_E134_3 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E134" trav_E134_0 (Pair t1 t2) = sem_E134_0_Pair (Pair t1 t2) (trav_E134_4 t1) (trav_E134_1 t2) trav_E134_0 t = sem_E134_0___ t trav_E134_1 (Nil) = sem_E134_1_Nil Nil trav_E134_1 (Cons t1 t2) = sem_E134_1_Cons (Cons t1 t2) (trav_E134_3 t1) (trav_E134_2 t2) trav_E134_1 t = sem_E134_1___ t trav_E134_2 t = sem_E134_2___ t trav_E134_3 (False) = sem_E134_3_False False trav_E134_3 t = sem_E134_3___ t trav_E134_4 (Nil) = sem_E134_4_Nil Nil trav_E134_4 (Cons t1 t2) = sem_E134_4_Cons (Cons t1 t2) (trav_E134_6 t1) (trav_E134_5 t2) trav_E134_4 t = sem_E134_4___ t trav_E134_5 t = sem_E134_5___ t trav_E134_6 t = sem_E134_6___ t sem_E134_0_Pair tree (S_E134_16 t1) (S_E134_8 t2) = S_E134_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_v12) (r_v21) -> return (r_v11, r_v21, r_v12)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E134) (r_v21) <- return r_x2 return (r_v21, r_v11)) ((,) (Pair r_v1 r_v2) r_v3)) >=> (\(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_E134_0_Pair tree (S_E134_15 t1) (S_E134_7 t2) = S_E134_3 ((\(x1_1) (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)) Nil) tmp_r1 tmp_r2)) t1 t2) sem_E134_0___ tree = S_E134_14 undefined sem_E134_1_Cons tree (S_E134_13 t1) (S_E134_11 t2) = S_E134_8 ((\(x1_1) (x2_1) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_1 (\() (r_v21) -> return (r_v21)) tmp_r1 tmp_r2)) t1 t2) sem_E134_1_Nil tree = S_E134_7 (return ()) sem_E134_1___ tree = S_E134_14 undefined sem_E134_2___ tree = S_E134_11 (return tree) sem_E134_3_False tree = S_E134_13 (return ()) sem_E134_3___ tree = S_E134_14 undefined sem_E134_4_Cons tree (S_E134_20 t1) (S_E134_19 t2) = S_E134_16 ((\(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_E134_4_Nil tree = S_E134_15 (return ()) sem_E134_4___ tree = S_E134_14 undefined sem_E134_5___ tree = S_E134_19 (return tree) sem_E134_6___ tree = S_E134_20 (return tree) data StatesOfE135 e_0 = S_E135_0 e_0 e_E135 x = case trav_E135_0 x of S_E135_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E135" trav_E135_0 t = sem_E135_0___ t sem_E135_0___ tree = S_E135_0 (return tree) data StatesOfE143 e_0 = S_E143_0 e_0 e_E143 x = case trav_E143_0 x of S_E143_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E143" trav_E143_0 t = sem_E143_0___ t sem_E143_0___ tree = S_E143_0 (return tree) data StatesOfE165 e_1 e_7 e_8 e_10 e_11 e_12 e_13 e_15 = S_E165_1 e_1 | S_E165_7 e_7 | S_E165_8 e_8 | S_E165_10 e_10 | S_E165_11 e_11 | S_E165_12 e_12 | S_E165_13 e_13 | S_E165_15 e_15 e_E165 x = case trav_E165_0 x of S_E165_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E165" trav_E165_0 (Pair t1 t2) = sem_E165_0_Pair (Pair t1 t2) (trav_E165_3 t1) (trav_E165_1 t2) trav_E165_0 t = sem_E165_0___ t trav_E165_1 (Z) = sem_E165_1_Z Z trav_E165_1 (S t1) = sem_E165_1_S (S t1) (trav_E165_2 t1) trav_E165_1 t = sem_E165_1___ t trav_E165_2 t = sem_E165_2___ t trav_E165_3 (Z) = sem_E165_3_Z Z trav_E165_3 (S t1) = sem_E165_3_S (S t1) (trav_E165_4 t1) trav_E165_3 t = sem_E165_3___ t trav_E165_4 t = sem_E165_4___ t sem_E165_0_Pair tree (S_E165_12 t1) (S_E165_7 t2) = S_E165_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) (\() () -> return ()) (\() -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) Z Z True)) tmp_r1 tmp_r2)) t1 t2) sem_E165_0_Pair tree (S_E165_12 t1) (S_E165_8 t2) = S_E165_1 ((\(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, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) Z (S r_v1) False)) tmp_r1 tmp_r2)) t1 t2) sem_E165_0_Pair tree (S_E165_13 t1) (S_E165_7 t2) = S_E165_1 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) () -> return (r_v11)) (\(r_v1) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) (S r_v1) Z False)) tmp_r1 tmp_r2)) t1 t2) sem_E165_0_Pair tree (S_E165_13 t1) (S_E165_8 t2) = S_E165_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, r_v13) <- (return r_x1 >>= e_E225) return (r_v11, r_v12, r_v13)) (Pair r_v1 r_v2)) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) (S r_v2) (S r_v3) r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E165_0___ tree = S_E165_11 undefined sem_E165_1_S tree (S_E165_10 t1) = S_E165_8 ((\(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_E165_1_Z tree = S_E165_7 (return (), return ()) sem_E165_1___ tree = S_E165_11 undefined sem_E165_2___ tree = S_E165_10 (return tree, return tree) sem_E165_3_S tree (S_E165_15 t1) = S_E165_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_E165_3_Z tree = S_E165_12 (return (), return ()) sem_E165_3___ tree = S_E165_11 undefined sem_E165_4___ tree = S_E165_15 (return tree, return tree) data StatesOfE166 e_0 = S_E166_0 e_0 e_E166 x = case trav_E166_0 x of S_E166_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E166" trav_E166_0 t = sem_E166_0___ t sem_E166_0___ tree = S_E166_0 (return tree) data StatesOfE167 e_0 = S_E167_0 e_0 e_E167 x = case trav_E167_0 x of S_E167_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E167" trav_E167_0 t = sem_E167_0___ t sem_E167_0___ tree = S_E167_0 (return tree) data StatesOfE168 e_0 = S_E168_0 e_0 e_E168 x = case trav_E168_0 x of S_E168_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E168" trav_E168_0 t = sem_E168_0___ t sem_E168_0___ tree = S_E168_0 (return tree) data StatesOfE174 e_3 e_5 e_6 e_7 e_8 e_11 e_12 = S_E174_3 e_3 | S_E174_5 e_5 | S_E174_6 e_6 | S_E174_7 e_7 | S_E174_8 e_8 | S_E174_11 e_11 | S_E174_12 e_12 e_E174 x = case trav_E174_0 x of S_E174_3 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E174" trav_E174_0 (Pair t1 t2) = sem_E174_0_Pair (Pair t1 t2) (trav_E174_2 t1) (trav_E174_1 t2) trav_E174_0 t = sem_E174_0___ t trav_E174_1 t = sem_E174_1___ t trav_E174_2 (Nil) = sem_E174_2_Nil Nil trav_E174_2 (Cons t1 t2) = sem_E174_2_Cons (Cons t1 t2) (trav_E174_4 t1) (trav_E174_3 t2) trav_E174_2 t = sem_E174_2___ t trav_E174_3 t = sem_E174_3___ t trav_E174_4 t = sem_E174_4___ t sem_E174_0_Pair tree (S_E174_7 t1) (S_E174_5 t2) = S_E174_3 ((\(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, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) Nil r_v1 Nil)) tmp_r1 tmp_r2)) t1 t2) sem_E174_0_Pair tree (S_E174_8 t1) (S_E174_5 t2) = S_E174_3 ((\(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) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E174) (r_v21) <- return r_x2 return (r_v11, r_v21, r_v12, r_v13)) ((,) (Pair r_v2 r_v3) r_v1)) >=> ((\(r_v1, r_v2, r_v3, r_v4) -> (\(r_x1, r_x2, r_x3) -> do (r_v11, r_v12, r_v13) <- (return r_x1 >>= e_E165) (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v11, r_v21, r_v12, r_v31, r_v13)) ((,,) (Pair r_v2 r_v4) r_v1 r_v3)) >=> (\(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 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) (Cons r_v3 r_v4) r_v5 (Cons r_v1 r_v2))))) tmp_r1 tmp_r2)) t1 t2) sem_E174_0___ tree = S_E174_6 undefined sem_E174_1___ tree = S_E174_5 (return tree, return tree) sem_E174_2_Cons tree (S_E174_12 t1) (S_E174_11 t2) = S_E174_8 ((\(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_E174_2_Nil tree = S_E174_7 (return ()) sem_E174_2___ tree = S_E174_6 undefined sem_E174_3___ tree = S_E174_11 (return tree) sem_E174_4___ tree = S_E174_12 (return tree) data StatesOfE175 e_0 = S_E175_0 e_0 e_E175 x = case trav_E175_0 x of S_E175_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E175" trav_E175_0 t = sem_E175_0___ t sem_E175_0___ tree = S_E175_0 (return tree) data StatesOfE176 e_0 = S_E176_0 e_0 e_E176 x = case trav_E176_0 x of S_E176_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E176" trav_E176_0 t = sem_E176_0___ t sem_E176_0___ tree = S_E176_0 (return tree) data StatesOfE177 e_0 = S_E177_0 e_0 e_E177 x = case trav_E177_0 x of S_E177_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E177" trav_E177_0 t = sem_E177_0___ t sem_E177_0___ tree = S_E177_0 (return tree) data StatesOfE183 e_0 = S_E183_0 e_0 e_E183 x = case trav_E183_0 x of S_E183_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E183" trav_E183_0 t = sem_E183_0___ t sem_E183_0___ tree = S_E183_0 (return tree) data StatesOfE185 e_0 = S_E185_0 e_0 e_E185 x = case trav_E185_0 x of S_E185_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E185" trav_E185_0 t = sem_E185_0___ t sem_E185_0___ tree = S_E185_0 (return tree) data StatesOfE186 e_0 = S_E186_0 e_0 e_E186 x = case trav_E186_0 x of S_E186_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E186" trav_E186_0 t = sem_E186_0___ t sem_E186_0___ tree = S_E186_0 (return tree) data StatesOfE225 e_5 e_7 e_8 e_10 e_11 e_12 e_13 e_15 = S_E225_5 e_5 | S_E225_7 e_7 | S_E225_8 e_8 | S_E225_10 e_10 | S_E225_11 e_11 | S_E225_12 e_12 | S_E225_13 e_13 | S_E225_15 e_15 e_E225 x = case trav_E225_0 x of S_E225_5 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E225" trav_E225_0 (Pair t1 t2) = sem_E225_0_Pair (Pair t1 t2) (trav_E225_3 t1) (trav_E225_1 t2) trav_E225_0 t = sem_E225_0___ t trav_E225_1 (Z) = sem_E225_1_Z Z trav_E225_1 (S t1) = sem_E225_1_S (S t1) (trav_E225_2 t1) trav_E225_1 t = sem_E225_1___ t trav_E225_2 t = sem_E225_2___ t trav_E225_3 (Z) = sem_E225_3_Z Z trav_E225_3 (S t1) = sem_E225_3_S (S t1) (trav_E225_4 t1) trav_E225_3 t = sem_E225_3___ t trav_E225_4 t = sem_E225_4___ t sem_E225_0_Pair tree (S_E225_12 t1) (S_E225_7 t2) = S_E225_5 ((\(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) (\() () -> return ()) (\() -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) Z Z True)) tmp_r1 tmp_r2)) t1 t2) sem_E225_0_Pair tree (S_E225_12 t1) (S_E225_8 t2) = S_E225_5 ((\(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, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) Z (S r_v1) False)) tmp_r1 tmp_r2)) t1 t2) sem_E225_0_Pair tree (S_E225_13 t1) (S_E225_7 t2) = S_E225_5 ((\(x1_1, x1_2) (x2_1, x2_2) -> (do tmp_r1 <- x1_1 tmp_r2 <- x2_2 (\f g m1 m2 -> f m1 m2 >>= g) (\(r_v11) () -> return (r_v11)) (\(r_v1) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) (S r_v1) Z False)) tmp_r1 tmp_r2)) t1 t2) sem_E225_0_Pair tree (S_E225_13 t1) (S_E225_8 t2) = S_E225_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, r_v13) <- (return r_x1 >>= e_E225) return (r_v11, r_v12, r_v13)) (Pair r_v1 r_v2)) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2, r_x3) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 (r_v31) <- return r_x3 return (r_v31, r_v11, r_v21)) ((,,) (S r_v2) (S r_v3) r_v1))) tmp_r1 tmp_r2)) t1 t2) sem_E225_0___ tree = S_E225_11 undefined sem_E225_1_S tree (S_E225_10 t1) = S_E225_8 ((\(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_E225_1_Z tree = S_E225_7 (return (), return ()) sem_E225_1___ tree = S_E225_11 undefined sem_E225_2___ tree = S_E225_10 (return tree, return tree) sem_E225_3_S tree (S_E225_15 t1) = S_E225_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_E225_3_Z tree = S_E225_12 (return (), return ()) sem_E225_3___ tree = S_E225_11 undefined sem_E225_4___ tree = S_E225_15 (return tree, return tree) data StatesOfE226 e_0 = S_E226_0 e_0 e_E226 x = case trav_E226_0 x of S_E226_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E226" trav_E226_0 t = sem_E226_0___ t sem_E226_0___ tree = S_E226_0 (return tree) data StatesOfE227 e_0 = S_E227_0 e_0 e_E227 x = case trav_E227_0 x of S_E227_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E227" trav_E227_0 t = sem_E227_0___ t sem_E227_0___ tree = S_E227_0 (return tree) data StatesOfE228 e_0 = S_E228_0 e_0 e_E228 x = case trav_E228_0 x of S_E228_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E228" trav_E228_0 t = sem_E228_0___ t sem_E228_0___ tree = S_E228_0 (return tree) inpre x = inprePrim x Nil inprePrim (BLeaf) ys = Pair Nil ys inprePrim (BNode v l r) ys2 = letAt17 (inprePrim r ys2) l v letAt17 (Pair rs ys1) l v = letAt25 (inprePrim l ys1) rs v letAt25 (Pair ls ys) rs v = letAt33 (unSplitXs ls v rs) ys letAt33 (Pair3 xs y bs) ys = letAt43 (isEquiv xs y bs) ys letAt43 (Pair (Cons x2 xs2) y2) ys = Pair (Cons x2 xs2) (Cons y2 ys) letUSX (Pair xs2 bs) y = Pair3 (Cons y xs2) y (Cons True bs) unSplitXs (Nil) y xs = letUSX (copyFalses xs) y unSplitXs (Cons x l) z r = letAt100 (unSplitXs l z r) x letAt100 (Pair3 xs y bs) x = Pair3 (Cons x xs) y (Cons False bs) copyFalses (Nil) = Pair Nil Nil copyFalses (Cons x xs) = letAt129 (copyFalses xs) x letAt129 (Pair s t) x = Pair (Cons x s) (Cons False t) isEquiv (Nil) y (Nil) = Pair Nil y isEquiv (Cons x xs) y (Cons b bs) = letAt160 (checkEquiv x y b) bs xs letAt160 (Pair x1 y1) bs xs = letAt169 (isEquiv xs y1 bs) x1 letAt169 (Pair xs1 y2) x1 = Pair (Cons x1 xs1) y2 checkEquiv (Z) (Z) (True) = Pair Z Z checkEquiv (S x) (Z) (False) = Pair (S x) Z checkEquiv (Z) (S y) (False) = Pair Z (S y) checkEquiv (S x) (S y) b = letAt220 (checkEquiv x y b) letAt220 (Pair x1 y1) = Pair (S x1) (S y1)