{-# OPTIONS -XNoMonomorphismRestriction #-} module TREE2LIST (inv_Ftreelist,treelist) where import Control.Monad import InvUtil import Data.Tuple import MyData inv_Ftreelist = runI . e_Ftreelist data StatesOfFtreelist e_1 e_6 e_7 e_8 e_11 e_12 e_13 e_14 = S_Ftreelist_1 e_1 | S_Ftreelist_6 e_6 | S_Ftreelist_7 e_7 | S_Ftreelist_8 e_8 | S_Ftreelist_11 e_11 | S_Ftreelist_12 e_12 | S_Ftreelist_13 e_13 | S_Ftreelist_14 e_14 e_Ftreelist x = case trav_Ftreelist_0 x of S_Ftreelist_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: Ftreelist" trav_Ftreelist_0 (Cons t1 t2) = sem_Ftreelist_0_Cons (Cons t1 t2) (trav_Ftreelist_4 t1) (trav_Ftreelist_1 t2) trav_Ftreelist_0 t = sem_Ftreelist_0___ t trav_Ftreelist_1 (Nil) = sem_Ftreelist_1_Nil Nil trav_Ftreelist_1 (Cons t1 t2) = sem_Ftreelist_1_Cons (Cons t1 t2) (trav_Ftreelist_3 t1) (trav_Ftreelist_2 t2) trav_Ftreelist_1 t = sem_Ftreelist_1___ t trav_Ftreelist_2 t = sem_Ftreelist_2___ t trav_Ftreelist_3 t = sem_Ftreelist_3___ t trav_Ftreelist_4 (Nil) = sem_Ftreelist_4_Nil Nil trav_Ftreelist_4 t = sem_Ftreelist_4___ t sem_Ftreelist_0_Cons tree (S_Ftreelist_13 t1) (S_Ftreelist_7 t2) = S_Ftreelist_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 BL) tmp_r1 tmp_r2)) t1 t2) sem_Ftreelist_0_Cons tree (S_Ftreelist_13 t1) (S_Ftreelist_8 t2) = S_Ftreelist_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) <- (return r_x1 >>= e_E10) return (r_v11, r_v12)) (Pair r_v1 (Cons r_v2 r_v3))) >=> (\(r_v1, r_v2) -> return (BN r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_Ftreelist_0_Cons tree (S_Ftreelist_14 t1) (S_Ftreelist_8 t2) = S_Ftreelist_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) <- (return r_x1 >>= e_E10) return (r_v11, r_v12)) (Pair r_v1 (Cons r_v2 r_v3))) >=> (\(r_v1, r_v2) -> return (BN r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_Ftreelist_0___ tree = S_Ftreelist_6 undefined sem_Ftreelist_1_Cons tree (S_Ftreelist_12 t1) (S_Ftreelist_11 t2) = S_Ftreelist_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_Ftreelist_1_Nil tree = S_Ftreelist_7 (return ()) sem_Ftreelist_1___ tree = S_Ftreelist_6 undefined sem_Ftreelist_2___ tree = S_Ftreelist_11 (return tree) sem_Ftreelist_3___ tree = S_Ftreelist_12 (return tree) sem_Ftreelist_4_Nil tree = S_Ftreelist_13 (return (), return tree) sem_Ftreelist_4___ tree = S_Ftreelist_14 (return tree) data StatesOfE10 e_1 e_6 e_7 e_10 e_11 e_18 e_19 e_22 e_24 e_25 e_26 e_27 e_28 = S_E10_1 e_1 | S_E10_6 e_6 | S_E10_7 e_7 | S_E10_10 e_10 | S_E10_11 e_11 | S_E10_18 e_18 | S_E10_19 e_19 | S_E10_22 e_22 | S_E10_24 e_24 | S_E10_25 e_25 | S_E10_26 e_26 | S_E10_27 e_27 | S_E10_28 e_28 e_E10 x = case trav_E10_0 x of S_E10_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E10" trav_E10_0 (Pair t1 t2) = sem_E10_0_Pair (Pair t1 t2) (trav_E10_4 t1) (trav_E10_1 t2) trav_E10_0 t = sem_E10_0___ t trav_E10_1 (Cons t1 t2) = sem_E10_1_Cons (Cons t1 t2) (trav_E10_3 t1) (trav_E10_2 t2) trav_E10_1 t = sem_E10_1___ t trav_E10_2 t = sem_E10_2___ t trav_E10_3 t = sem_E10_3___ t trav_E10_4 (Nil) = sem_E10_4_Nil Nil trav_E10_4 (Cons t1 t2) = sem_E10_4_Cons (Cons t1 t2) (trav_E10_6 t1) (trav_E10_5 t2) trav_E10_4 t = sem_E10_4___ t trav_E10_5 (Nil) = sem_E10_5_Nil Nil trav_E10_5 (Cons t1 t2) = sem_E10_5_Cons (Cons t1 t2) (trav_E10_6 t1) (trav_E10_5 t2) trav_E10_5 t = sem_E10_5___ t trav_E10_6 (B1) = sem_E10_6_B1 B1 trav_E10_6 (B0) = sem_E10_6_B0 B0 trav_E10_6 t = sem_E10_6___ t sem_E10_0_Pair tree (S_E10_19 t1) (S_E10_7 t2) = S_E10_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_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E58) (r_v21) <- return r_x2 return (r_v21, r_v11, r_v12)) ((,) (Pair r_v1 r_v3) r_v2)) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11) <- (return r_x1 >>= e_E11) (r_v21) <- (return r_x2 >>= e_E13) return (r_v11, r_v21)) ((,) (Cons r_v1 r_v2) r_v3))) tmp_r1 tmp_r2)) t1 t2) sem_E10_0_Pair tree (S_E10_18 t1) (S_E10_6 t2) = S_E10_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 >>= e_E11) (r_v21) <- (return r_x2 >>= e_E13) return (r_v11, r_v21)) ((,) Nil r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_0_Pair tree (S_E10_18 t1) (S_E10_7 t2) = S_E10_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 >>= e_E11) (r_v21) <- (return r_x2 >>= e_E13) return (r_v11, r_v21)) ((,) Nil r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_0___ tree = S_E10_26 undefined sem_E10_1_Cons tree (S_E10_11 t1) (S_E10_10 t2) = S_E10_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_E10_1___ tree = S_E10_6 (return tree) sem_E10_2___ tree = S_E10_10 (return tree) sem_E10_3___ tree = S_E10_11 (return tree) sem_E10_4_Cons tree (S_E10_27 t1) (S_E10_25 t2) = S_E10_19 ((\(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_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_E10_4_Cons tree (S_E10_28 t1) (S_E10_25 t2) = S_E10_19 ((\(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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_4_Cons tree (S_E10_27 t1) (S_E10_22 t2) = S_E10_19 ((\(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) -> do (r_v11) <- return r_x1 return (r_v11)) Nil) tmp_r1 tmp_r2)) t1 t2) sem_E10_4_Cons tree (S_E10_28 t1) (S_E10_22 t2) = S_E10_19 ((\(x1_1) (x2_1, x2_2) -> (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 B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_4_Cons tree (S_E10_28 t1) (S_E10_24 t2) = S_E10_19 ((\(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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_4_Nil tree = S_E10_18 (return ()) sem_E10_4___ tree = S_E10_26 undefined sem_E10_5_Cons tree (S_E10_26 t1) (S_E10_25 t2) = S_E10_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E10_5_Cons tree (S_E10_27 t1) (S_E10_25 t2) = S_E10_25 ((\(x1_1, x1_2) (x2_1, x2_2) -> (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 B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_5_Cons tree (S_E10_28 t1) (S_E10_25 t2) = S_E10_25 ((\(x1_1) (x2_1, x2_2) -> (return tree, 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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_5_Cons tree (S_E10_26 t1) (S_E10_22 t2) = S_E10_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E10_5_Cons tree (S_E10_27 t1) (S_E10_22 t2) = S_E10_25 ((\(x1_1, x1_2) (x2_1, x2_2) -> (return tree, 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_E10_5_Cons tree (S_E10_27 t1) (S_E10_24 t2) = S_E10_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E10_5_Cons tree (S_E10_28 t1) (S_E10_22 t2) = S_E10_25 ((\(x1_1) (x2_1, x2_2) -> (return tree, 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 B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_5_Cons tree (S_E10_28 t1) (S_E10_24 t2) = S_E10_25 ((\(x1_1) (x2_1) -> (return tree, 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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E10_5_Cons tree (S_E10_26 t1) (S_E10_24 t2) = S_E10_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E10_5_Nil tree = S_E10_22 (return (), return tree) sem_E10_5___ tree = S_E10_24 (return tree) sem_E10_6_B0 tree = S_E10_27 (return (), return ()) sem_E10_6_B1 tree = S_E10_28 (return ()) sem_E10_6___ tree = S_E10_26 undefined data StatesOfE11 e_3 e_6 e_7 e_8 e_11 e_12 e_13 e_14 = S_E11_3 e_3 | S_E11_6 e_6 | S_E11_7 e_7 | S_E11_8 e_8 | S_E11_11 e_11 | S_E11_12 e_12 | S_E11_13 e_13 | S_E11_14 e_14 e_E11 x = case trav_E11_0 x of S_E11_3 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E11" trav_E11_0 (Cons t1 t2) = sem_E11_0_Cons (Cons t1 t2) (trav_E11_4 t1) (trav_E11_1 t2) trav_E11_0 t = sem_E11_0___ t trav_E11_1 (Nil) = sem_E11_1_Nil Nil trav_E11_1 (Cons t1 t2) = sem_E11_1_Cons (Cons t1 t2) (trav_E11_3 t1) (trav_E11_2 t2) trav_E11_1 t = sem_E11_1___ t trav_E11_2 t = sem_E11_2___ t trav_E11_3 t = sem_E11_3___ t trav_E11_4 (Nil) = sem_E11_4_Nil Nil trav_E11_4 t = sem_E11_4___ t sem_E11_0_Cons tree (S_E11_13 t1) (S_E11_7 t2) = S_E11_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)) BL) tmp_r1 tmp_r2)) t1 t2) sem_E11_0_Cons tree (S_E11_13 t1) (S_E11_8 t2) = S_E11_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) <- (return r_x1 >>= e_E10) return (r_v11, r_v12)) (Pair r_v1 (Cons r_v2 r_v3))) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BN r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E11_0_Cons tree (S_E11_14 t1) (S_E11_8 t2) = S_E11_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) <- (return r_x1 >>= e_E10) return (r_v11, r_v12)) (Pair r_v1 (Cons r_v2 r_v3))) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BN r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E11_0___ tree = S_E11_6 undefined sem_E11_1_Cons tree (S_E11_12 t1) (S_E11_11 t2) = S_E11_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_E11_1_Nil tree = S_E11_7 (return ()) sem_E11_1___ tree = S_E11_6 undefined sem_E11_2___ tree = S_E11_11 (return tree) sem_E11_3___ tree = S_E11_12 (return tree) sem_E11_4_Nil tree = S_E11_13 (return (), return tree) sem_E11_4___ tree = S_E11_14 (return tree) data StatesOfE12 e_0 = S_E12_0 e_0 e_E12 x = case trav_E12_0 x of S_E12_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E12" trav_E12_0 t = sem_E12_0___ t sem_E12_0___ tree = S_E12_0 (return tree) data StatesOfE13 e_3 e_6 e_7 e_8 e_11 e_12 e_13 e_14 = S_E13_3 e_3 | S_E13_6 e_6 | S_E13_7 e_7 | S_E13_8 e_8 | S_E13_11 e_11 | S_E13_12 e_12 | S_E13_13 e_13 | S_E13_14 e_14 e_E13 x = case trav_E13_0 x of S_E13_3 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E13" trav_E13_0 (Cons t1 t2) = sem_E13_0_Cons (Cons t1 t2) (trav_E13_4 t1) (trav_E13_1 t2) trav_E13_0 t = sem_E13_0___ t trav_E13_1 (Nil) = sem_E13_1_Nil Nil trav_E13_1 (Cons t1 t2) = sem_E13_1_Cons (Cons t1 t2) (trav_E13_3 t1) (trav_E13_2 t2) trav_E13_1 t = sem_E13_1___ t trav_E13_2 t = sem_E13_2___ t trav_E13_3 t = sem_E13_3___ t trav_E13_4 (Nil) = sem_E13_4_Nil Nil trav_E13_4 t = sem_E13_4___ t sem_E13_0_Cons tree (S_E13_13 t1) (S_E13_7 t2) = S_E13_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)) BL) tmp_r1 tmp_r2)) t1 t2) sem_E13_0_Cons tree (S_E13_13 t1) (S_E13_8 t2) = S_E13_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) <- (return r_x1 >>= e_E10) return (r_v11, r_v12)) (Pair r_v1 (Cons r_v2 r_v3))) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BN r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E13_0_Cons tree (S_E13_14 t1) (S_E13_8 t2) = S_E13_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) <- (return r_x1 >>= e_E10) return (r_v11, r_v12)) (Pair r_v1 (Cons r_v2 r_v3))) >=> (\(r_v1, r_v2) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (BN r_v1 r_v2))) tmp_r1 tmp_r2)) t1 t2) sem_E13_0___ tree = S_E13_6 undefined sem_E13_1_Cons tree (S_E13_12 t1) (S_E13_11 t2) = S_E13_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_E13_1_Nil tree = S_E13_7 (return ()) sem_E13_1___ tree = S_E13_6 undefined sem_E13_2___ tree = S_E13_11 (return tree) sem_E13_3___ tree = S_E13_12 (return tree) sem_E13_4_Nil tree = S_E13_13 (return (), return tree) sem_E13_4___ tree = S_E13_14 (return tree) data StatesOfE14 e_0 = S_E14_0 e_0 e_E14 x = case trav_E14_0 x of S_E14_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E14" trav_E14_0 t = sem_E14_0___ t sem_E14_0___ tree = S_E14_0 (return tree) data StatesOfE45 e_0 = S_E45_0 e_0 e_E45 x = case trav_E45_0 x of S_E45_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E45" trav_E45_0 t = sem_E45_0___ t sem_E45_0___ tree = S_E45_0 (return tree) data StatesOfE58 e_4 e_6 e_7 e_10 e_11 e_18 e_19 e_22 e_24 e_25 e_26 e_27 e_28 = S_E58_4 e_4 | S_E58_6 e_6 | S_E58_7 e_7 | S_E58_10 e_10 | S_E58_11 e_11 | S_E58_18 e_18 | S_E58_19 e_19 | S_E58_22 e_22 | S_E58_24 e_24 | S_E58_25 e_25 | S_E58_26 e_26 | S_E58_27 e_27 | S_E58_28 e_28 e_E58 x = case trav_E58_0 x of S_E58_4 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E58" trav_E58_0 (Pair t1 t2) = sem_E58_0_Pair (Pair t1 t2) (trav_E58_4 t1) (trav_E58_1 t2) trav_E58_0 t = sem_E58_0___ t trav_E58_1 (Cons t1 t2) = sem_E58_1_Cons (Cons t1 t2) (trav_E58_3 t1) (trav_E58_2 t2) trav_E58_1 t = sem_E58_1___ t trav_E58_2 t = sem_E58_2___ t trav_E58_3 t = sem_E58_3___ t trav_E58_4 (Nil) = sem_E58_4_Nil Nil trav_E58_4 (Cons t1 t2) = sem_E58_4_Cons (Cons t1 t2) (trav_E58_6 t1) (trav_E58_5 t2) trav_E58_4 t = sem_E58_4___ t trav_E58_5 (Nil) = sem_E58_5_Nil Nil trav_E58_5 (Cons t1 t2) = sem_E58_5_Cons (Cons t1 t2) (trav_E58_6 t1) (trav_E58_5 t2) trav_E58_5 t = sem_E58_5___ t trav_E58_6 (B1) = sem_E58_6_B1 B1 trav_E58_6 (B0) = sem_E58_6_B0 B0 trav_E58_6 t = sem_E58_6___ t sem_E58_0_Pair tree (S_E58_19 t1) (S_E58_7 t2) = S_E58_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_v21, r_v22) -> return (r_v11, r_v21, r_v22)) ((\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E58) (r_v21) <- return r_x2 return (r_v21, r_v11, r_v12)) ((,) (Pair r_v1 r_v3) r_v2)) >=> (\(r_v1, r_v2, r_v3) -> (\(r_x1, r_x2) -> do (r_v11) <- return r_x1 (r_v21) <- return r_x2 return (r_v11, r_v21)) ((,) (Cons r_v1 r_v2) r_v3))) tmp_r1 tmp_r2)) t1 t2) sem_E58_0_Pair tree (S_E58_18 t1) (S_E58_6 t2) = S_E58_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)) ((,) Nil r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_0_Pair tree (S_E58_18 t1) (S_E58_7 t2) = S_E58_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)) ((,) Nil r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_0___ tree = S_E58_26 undefined sem_E58_1_Cons tree (S_E58_11 t1) (S_E58_10 t2) = S_E58_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_E58_1___ tree = S_E58_6 (return tree) sem_E58_2___ tree = S_E58_10 (return tree) sem_E58_3___ tree = S_E58_11 (return tree) sem_E58_4_Cons tree (S_E58_27 t1) (S_E58_25 t2) = S_E58_19 ((\(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_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_E58_4_Cons tree (S_E58_28 t1) (S_E58_25 t2) = S_E58_19 ((\(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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_4_Cons tree (S_E58_27 t1) (S_E58_22 t2) = S_E58_19 ((\(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) -> do (r_v11) <- return r_x1 return (r_v11)) Nil) tmp_r1 tmp_r2)) t1 t2) sem_E58_4_Cons tree (S_E58_28 t1) (S_E58_22 t2) = S_E58_19 ((\(x1_1) (x2_1, x2_2) -> (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 B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_4_Cons tree (S_E58_28 t1) (S_E58_24 t2) = S_E58_19 ((\(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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_4_Nil tree = S_E58_18 (return ()) sem_E58_4___ tree = S_E58_26 undefined sem_E58_5_Cons tree (S_E58_26 t1) (S_E58_25 t2) = S_E58_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E58_5_Cons tree (S_E58_27 t1) (S_E58_25 t2) = S_E58_25 ((\(x1_1, x1_2) (x2_1, x2_2) -> (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 B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_5_Cons tree (S_E58_28 t1) (S_E58_25 t2) = S_E58_25 ((\(x1_1) (x2_1, x2_2) -> (return tree, 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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_5_Cons tree (S_E58_26 t1) (S_E58_22 t2) = S_E58_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E58_5_Cons tree (S_E58_27 t1) (S_E58_22 t2) = S_E58_25 ((\(x1_1, x1_2) (x2_1, x2_2) -> (return tree, 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_E58_5_Cons tree (S_E58_27 t1) (S_E58_24 t2) = S_E58_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E58_5_Cons tree (S_E58_28 t1) (S_E58_22 t2) = S_E58_25 ((\(x1_1) (x2_1, x2_2) -> (return tree, 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 B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_5_Cons tree (S_E58_28 t1) (S_E58_24 t2) = S_E58_25 ((\(x1_1) (x2_1) -> (return tree, 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) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_E58_5_Cons tree (S_E58_26 t1) (S_E58_24 t2) = S_E58_24 ((\(_) (_) -> (return tree)) t1 t2) sem_E58_5_Nil tree = S_E58_22 (return (), return tree) sem_E58_5___ tree = S_E58_24 (return tree) sem_E58_6_B0 tree = S_E58_27 (return (), return ()) sem_E58_6_B1 tree = S_E58_28 (return ()) sem_E58_6___ tree = S_E58_26 undefined data StatesOfE59 e_0 = S_E59_0 e_0 e_E59 x = case trav_E59_0 x of S_E59_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E59" trav_E59_0 t = sem_E59_0___ t sem_E59_0___ tree = S_E59_0 (return tree) data StatesOfE60 e_0 = S_E60_0 e_0 e_E60 x = case trav_E60_0 x of S_E60_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E60" trav_E60_0 t = sem_E60_0___ t sem_E60_0___ tree = S_E60_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 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) treelist (BL) = Cons Nil Nil treelist (BN l r) = lettreelist (appn (treelist l) (treelist r)) lettreelist (Pair n (Cons r rs)) = Cons n (Cons r rs) incL (Nil) = Cons B0 Nil incL (Cons (B0) x) = Cons B1 x incL (Cons (B1) x) = Cons B0 (incL x) appn (Nil) ys = Pair Nil ys appn (Cons x xs) ys = letappend (appn xs ys) x letappend (Pair n zs) x = Pair (incL n) (Cons x zs)