{-# OPTIONS -XNoMonomorphismRestriction #-} module BIN2PEANO (inv_Fbin2peano,bin2peano) where import Control.Monad import InvUtil import Data.Tuple import MyData inv_Fbin2peano = runI . e_Fbin2peano data StatesOfFbin2peano e_1 e_7 e_8 e_14 e_16 e_20 e_21 e_26 e_31 e_32 e_33 e_34 = S_Fbin2peano_1 e_1 | S_Fbin2peano_7 e_7 | S_Fbin2peano_8 e_8 | S_Fbin2peano_14 e_14 | S_Fbin2peano_16 e_16 | S_Fbin2peano_20 e_20 | S_Fbin2peano_21 e_21 | S_Fbin2peano_26 e_26 | S_Fbin2peano_31 e_31 | S_Fbin2peano_32 e_32 | S_Fbin2peano_33 e_33 | S_Fbin2peano_34 e_34 e_Fbin2peano x = case trav_Fbin2peano_0 x of S_Fbin2peano_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: Fbin2peano" trav_Fbin2peano_0 (Z) = sem_Fbin2peano_0_Z Z trav_Fbin2peano_0 (S t1) = sem_Fbin2peano_0_S (S t1) (trav_Fbin2peano_1 t1) trav_Fbin2peano_0 t = sem_Fbin2peano_0___ t trav_Fbin2peano_1 (Z) = sem_Fbin2peano_1_Z Z trav_Fbin2peano_1 (S t1) = sem_Fbin2peano_1_S (S t1) (trav_Fbin2peano_2 t1) trav_Fbin2peano_1 t = sem_Fbin2peano_1___ t trav_Fbin2peano_2 (Z) = sem_Fbin2peano_2_Z Z trav_Fbin2peano_2 (S t1) = sem_Fbin2peano_2_S (S t1) (trav_Fbin2peano_3 t1) trav_Fbin2peano_2 t = sem_Fbin2peano_2___ t trav_Fbin2peano_3 (Z) = sem_Fbin2peano_3_Z Z trav_Fbin2peano_3 (S t1) = sem_Fbin2peano_3_S (S t1) (trav_Fbin2peano_4 t1) trav_Fbin2peano_3 t = sem_Fbin2peano_3___ t trav_Fbin2peano_4 (Z) = sem_Fbin2peano_4_Z Z trav_Fbin2peano_4 (S t1) = sem_Fbin2peano_4_S (S t1) (trav_Fbin2peano_5 t1) trav_Fbin2peano_4 t = sem_Fbin2peano_4___ t trav_Fbin2peano_5 (Z) = sem_Fbin2peano_5_Z Z trav_Fbin2peano_5 (S t1) = sem_Fbin2peano_5_S (S t1) (trav_Fbin2peano_6 t1) trav_Fbin2peano_5 t = sem_Fbin2peano_5___ t trav_Fbin2peano_6 (Z) = sem_Fbin2peano_6_Z Z trav_Fbin2peano_6 (S t1) = sem_Fbin2peano_6_S (S t1) (trav_Fbin2peano_6 t1) trav_Fbin2peano_6 t = sem_Fbin2peano_6___ t sem_Fbin2peano_0_S tree (S_Fbin2peano_16 t1) = S_Fbin2peano_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> ((\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E19) return (r_v11, r_v12)) (S (S r_v1))) >=> (\(r_v1, r_v2) -> return (Cons B0 (Cons r_v1 r_v2)))) (r_v11)) tmp_r1)) t1) sem_Fbin2peano_0_S tree (S_Fbin2peano_8 t1) = S_Fbin2peano_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11, r_v12) -> (\(r_v1, r_v2) -> return (Cons B1 (Cons r_v1 r_v2))) (r_v11, r_v12)) tmp_r1)) t1) sem_Fbin2peano_0_S tree (S_Fbin2peano_14 t1) = S_Fbin2peano_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> ((\() -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E19) return (r_v11, r_v12)) (S Z)) >=> (\(r_v1, r_v2) -> return (Cons B0 (Cons r_v1 r_v2)))) ()) tmp_r1)) t1) sem_Fbin2peano_0_S tree (S_Fbin2peano_7 t1) = S_Fbin2peano_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> return (Cons B1 Nil)) ()) tmp_r1)) t1) sem_Fbin2peano_0_Z tree = S_Fbin2peano_1 (return () >>= (\() -> return (Cons B0 Nil))) sem_Fbin2peano_0___ tree = S_Fbin2peano_32 undefined sem_Fbin2peano_1_S tree (S_Fbin2peano_16 t1) = S_Fbin2peano_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E30) return (r_v11, r_v12)) (S (S r_v1))) (r_v11)) tmp_r1)) t1) sem_Fbin2peano_1_S tree (S_Fbin2peano_21 t1) = S_Fbin2peano_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_1_S tree (S_Fbin2peano_14 t1) = S_Fbin2peano_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E30) return (r_v11, r_v12)) (S Z)) ()) tmp_r1)) t1) sem_Fbin2peano_1_S tree (S_Fbin2peano_20 t1) = S_Fbin2peano_14 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_Fbin2peano_1_Z tree = S_Fbin2peano_7 (return ()) sem_Fbin2peano_1___ tree = S_Fbin2peano_32 undefined sem_Fbin2peano_2_S tree (S_Fbin2peano_21 t1) = S_Fbin2peano_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_2_S tree (S_Fbin2peano_26 t1) = S_Fbin2peano_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_2_S tree (S_Fbin2peano_20 t1) = S_Fbin2peano_14 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_Fbin2peano_2_Z tree = S_Fbin2peano_20 (return ()) sem_Fbin2peano_2___ tree = S_Fbin2peano_32 undefined sem_Fbin2peano_3_S tree (S_Fbin2peano_26 t1) = S_Fbin2peano_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_3_S tree (S_Fbin2peano_31 t1) = S_Fbin2peano_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_3_Z tree = S_Fbin2peano_20 (return ()) sem_Fbin2peano_3___ tree = S_Fbin2peano_32 undefined sem_Fbin2peano_4_S tree (S_Fbin2peano_33 t1) = S_Fbin2peano_31 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_Fbin2peano_4_S tree (S_Fbin2peano_31 t1) = S_Fbin2peano_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_4_Z tree = S_Fbin2peano_31 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_Fbin2peano_4___ tree = S_Fbin2peano_32 undefined sem_Fbin2peano_5_S tree (S_Fbin2peano_33 t1) = S_Fbin2peano_31 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_Fbin2peano_5_S tree (S_Fbin2peano_34 t1) = S_Fbin2peano_33 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_5_Z tree = S_Fbin2peano_31 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_Fbin2peano_5___ tree = S_Fbin2peano_32 undefined sem_Fbin2peano_6_S tree (S_Fbin2peano_33 t1) = S_Fbin2peano_34 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_Fbin2peano_6_S tree (S_Fbin2peano_34 t1) = S_Fbin2peano_33 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_Fbin2peano_6_Z tree = S_Fbin2peano_34 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_Fbin2peano_6___ tree = S_Fbin2peano_32 undefined data StatesOfE19 e_1 e_6 e_8 e_10 e_15 e_16 e_21 e_26 e_27 e_28 e_29 = S_E19_1 e_1 | S_E19_6 e_6 | S_E19_8 e_8 | S_E19_10 e_10 | S_E19_15 e_15 | S_E19_16 e_16 | S_E19_21 e_21 | S_E19_26 e_26 | S_E19_27 e_27 | S_E19_28 e_28 | S_E19_29 e_29 e_E19 x = case trav_E19_0 x of S_E19_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E19" trav_E19_0 (S t1) = sem_E19_0_S (S t1) (trav_E19_1 t1) trav_E19_0 t = sem_E19_0___ t trav_E19_1 (Z) = sem_E19_1_Z Z trav_E19_1 (S t1) = sem_E19_1_S (S t1) (trav_E19_2 t1) trav_E19_1 t = sem_E19_1___ t trav_E19_2 (Z) = sem_E19_2_Z Z trav_E19_2 (S t1) = sem_E19_2_S (S t1) (trav_E19_3 t1) trav_E19_2 t = sem_E19_2___ t trav_E19_3 (Z) = sem_E19_3_Z Z trav_E19_3 (S t1) = sem_E19_3_S (S t1) (trav_E19_4 t1) trav_E19_3 t = sem_E19_3___ t trav_E19_4 (Z) = sem_E19_4_Z Z trav_E19_4 (S t1) = sem_E19_4_S (S t1) (trav_E19_5 t1) trav_E19_4 t = sem_E19_4___ t trav_E19_5 (Z) = sem_E19_5_Z Z trav_E19_5 (S t1) = sem_E19_5_S (S t1) (trav_E19_5 t1) trav_E19_5 t = sem_E19_5___ t sem_E19_0_S tree (S_E19_10 t1) = S_E19_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S (S r_v1)) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E20) return (r_v11, r_v12)) (Cons B0 r_v1))) (r_v11)) tmp_r1)) t1) sem_E19_0_S tree (S_E19_8 t1) = S_E19_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S Z) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E20) return (r_v11, r_v12)) (Cons B0 r_v1))) ()) tmp_r1)) t1) sem_E19_0_S tree (S_E19_6 t1) = S_E19_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E20) return (r_v11, r_v12)) (Cons B1 r_v1)) (r_v11)) tmp_r1)) t1) sem_E19_0___ tree = S_E19_27 undefined sem_E19_1_S tree (S_E19_16 t1) = S_E19_10 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E19_1_S tree (S_E19_28 t1) = S_E19_6 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E19_1_S tree (S_E19_15 t1) = S_E19_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_E19_1_Z tree = S_E19_6 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) Z)) sem_E19_1___ tree = S_E19_27 undefined sem_E19_2_S tree (S_E19_21 t1) = S_E19_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E19_2_S tree (S_E19_29 t1) = S_E19_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E19_2_Z tree = S_E19_15 (return ()) sem_E19_2___ tree = S_E19_27 undefined sem_E19_3_S tree (S_E19_28 t1) = S_E19_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E19_3_S tree (S_E19_26 t1) = S_E19_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E19_3_Z tree = S_E19_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E19_3___ tree = S_E19_27 undefined sem_E19_4_S tree (S_E19_28 t1) = S_E19_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E19_4_S tree (S_E19_29 t1) = S_E19_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E19_4_Z tree = S_E19_26 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E19_4___ tree = S_E19_27 undefined sem_E19_5_S tree (S_E19_28 t1) = S_E19_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E19_5_S tree (S_E19_29 t1) = S_E19_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E19_5_Z tree = S_E19_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E19_5___ tree = S_E19_27 undefined data StatesOfE20 e_0 e_1 e_4 e_5 = S_E20_0 e_0 | S_E20_1 e_1 | S_E20_4 e_4 | S_E20_5 e_5 e_E20 x = case trav_E20_0 x of S_E20_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E20" trav_E20_0 (Cons t1 t2) = sem_E20_0_Cons (Cons t1 t2) (trav_E20_2 t1) (trav_E20_1 t2) trav_E20_0 t = sem_E20_0___ t trav_E20_1 t = sem_E20_1___ t trav_E20_2 t = sem_E20_2___ t sem_E20_0_Cons tree (S_E20_5 t1) (S_E20_4 t2) = S_E20_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_E20_0___ tree = S_E20_0 undefined sem_E20_1___ tree = S_E20_4 (return tree) sem_E20_2___ tree = S_E20_5 (return tree) data StatesOfE30 e_1 e_6 e_8 e_10 e_15 e_16 e_21 e_26 e_27 e_28 e_29 = S_E30_1 e_1 | S_E30_6 e_6 | S_E30_8 e_8 | S_E30_10 e_10 | S_E30_15 e_15 | S_E30_16 e_16 | S_E30_21 e_21 | S_E30_26 e_26 | S_E30_27 e_27 | S_E30_28 e_28 | S_E30_29 e_29 e_E30 x = case trav_E30_0 x of S_E30_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E30" trav_E30_0 (S t1) = sem_E30_0_S (S t1) (trav_E30_1 t1) trav_E30_0 t = sem_E30_0___ t trav_E30_1 (Z) = sem_E30_1_Z Z trav_E30_1 (S t1) = sem_E30_1_S (S t1) (trav_E30_2 t1) trav_E30_1 t = sem_E30_1___ t trav_E30_2 (Z) = sem_E30_2_Z Z trav_E30_2 (S t1) = sem_E30_2_S (S t1) (trav_E30_3 t1) trav_E30_2 t = sem_E30_2___ t trav_E30_3 (Z) = sem_E30_3_Z Z trav_E30_3 (S t1) = sem_E30_3_S (S t1) (trav_E30_4 t1) trav_E30_3 t = sem_E30_3___ t trav_E30_4 (Z) = sem_E30_4_Z Z trav_E30_4 (S t1) = sem_E30_4_S (S t1) (trav_E30_5 t1) trav_E30_4 t = sem_E30_4___ t trav_E30_5 (Z) = sem_E30_5_Z Z trav_E30_5 (S t1) = sem_E30_5_S (S t1) (trav_E30_5 t1) trav_E30_5 t = sem_E30_5___ t sem_E30_0_S tree (S_E30_10 t1) = S_E30_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S (S r_v1)) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E31) return (r_v11, r_v12)) (Cons B0 r_v1))) (r_v11)) tmp_r1)) t1) sem_E30_0_S tree (S_E30_8 t1) = S_E30_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S Z) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E31) return (r_v11, r_v12)) (Cons B0 r_v1))) ()) tmp_r1)) t1) sem_E30_0_S tree (S_E30_6 t1) = S_E30_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11, r_v12) <- (return r_x1 >>= e_E31) return (r_v11, r_v12)) (Cons B1 r_v1)) (r_v11)) tmp_r1)) t1) sem_E30_0___ tree = S_E30_27 undefined sem_E30_1_S tree (S_E30_16 t1) = S_E30_10 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E30_1_S tree (S_E30_28 t1) = S_E30_6 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E30_1_S tree (S_E30_15 t1) = S_E30_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_E30_1_Z tree = S_E30_6 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) Z)) sem_E30_1___ tree = S_E30_27 undefined sem_E30_2_S tree (S_E30_21 t1) = S_E30_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E30_2_S tree (S_E30_29 t1) = S_E30_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E30_2_Z tree = S_E30_15 (return ()) sem_E30_2___ tree = S_E30_27 undefined sem_E30_3_S tree (S_E30_28 t1) = S_E30_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E30_3_S tree (S_E30_26 t1) = S_E30_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E30_3_Z tree = S_E30_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E30_3___ tree = S_E30_27 undefined sem_E30_4_S tree (S_E30_28 t1) = S_E30_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E30_4_S tree (S_E30_29 t1) = S_E30_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E30_4_Z tree = S_E30_26 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E30_4___ tree = S_E30_27 undefined sem_E30_5_S tree (S_E30_28 t1) = S_E30_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E30_5_S tree (S_E30_29 t1) = S_E30_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E30_5_Z tree = S_E30_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E30_5___ tree = S_E30_27 undefined data StatesOfE31 e_0 e_1 e_4 e_5 = S_E31_0 e_0 | S_E31_1 e_1 | S_E31_4 e_4 | S_E31_5 e_5 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 (Cons t1 t2) = sem_E31_0_Cons (Cons t1 t2) (trav_E31_2 t1) (trav_E31_1 t2) trav_E31_0 t = sem_E31_0___ t trav_E31_1 t = sem_E31_1___ t trav_E31_2 t = sem_E31_2___ t sem_E31_0_Cons tree (S_E31_5 t1) (S_E31_4 t2) = S_E31_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_E31_0___ tree = S_E31_0 undefined sem_E31_1___ tree = S_E31_4 (return tree) sem_E31_2___ tree = S_E31_5 (return tree) data StatesOfE40 e_1 e_6 e_8 e_10 e_15 e_16 e_21 e_26 e_27 e_28 e_29 = S_E40_1 e_1 | S_E40_6 e_6 | S_E40_8 e_8 | S_E40_10 e_10 | S_E40_15 e_15 | S_E40_16 e_16 | S_E40_21 e_21 | S_E40_26 e_26 | S_E40_27 e_27 | S_E40_28 e_28 | S_E40_29 e_29 e_E40 x = case trav_E40_0 x of S_E40_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E40" trav_E40_0 (S t1) = sem_E40_0_S (S t1) (trav_E40_1 t1) trav_E40_0 t = sem_E40_0___ t trav_E40_1 (Z) = sem_E40_1_Z Z trav_E40_1 (S t1) = sem_E40_1_S (S t1) (trav_E40_2 t1) trav_E40_1 t = sem_E40_1___ t trav_E40_2 (Z) = sem_E40_2_Z Z trav_E40_2 (S t1) = sem_E40_2_S (S t1) (trav_E40_3 t1) trav_E40_2 t = sem_E40_2___ t trav_E40_3 (Z) = sem_E40_3_Z Z trav_E40_3 (S t1) = sem_E40_3_S (S t1) (trav_E40_4 t1) trav_E40_3 t = sem_E40_3___ t trav_E40_4 (Z) = sem_E40_4_Z Z trav_E40_4 (S t1) = sem_E40_4_S (S t1) (trav_E40_5 t1) trav_E40_4 t = sem_E40_4___ t trav_E40_5 (Z) = sem_E40_5_Z Z trav_E40_5 (S t1) = sem_E40_5_S (S t1) (trav_E40_5 t1) trav_E40_5 t = sem_E40_5___ t sem_E40_0_S tree (S_E40_10 t1) = S_E40_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S (S r_v1)) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) (r_v11)) tmp_r1)) t1) sem_E40_0_S tree (S_E40_8 t1) = S_E40_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S Z) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) ()) tmp_r1)) t1) sem_E40_0_S tree (S_E40_6 t1) = S_E40_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) (r_v11)) tmp_r1)) t1) sem_E40_0___ tree = S_E40_27 undefined sem_E40_1_S tree (S_E40_16 t1) = S_E40_10 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E40_1_S tree (S_E40_28 t1) = S_E40_6 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E40_1_S tree (S_E40_15 t1) = S_E40_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_E40_1_Z tree = S_E40_6 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) Z)) sem_E40_1___ tree = S_E40_27 undefined sem_E40_2_S tree (S_E40_21 t1) = S_E40_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E40_2_S tree (S_E40_29 t1) = S_E40_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E40_2_Z tree = S_E40_15 (return ()) sem_E40_2___ tree = S_E40_27 undefined sem_E40_3_S tree (S_E40_28 t1) = S_E40_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E40_3_S tree (S_E40_26 t1) = S_E40_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E40_3_Z tree = S_E40_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E40_3___ tree = S_E40_27 undefined sem_E40_4_S tree (S_E40_28 t1) = S_E40_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E40_4_S tree (S_E40_29 t1) = S_E40_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E40_4_Z tree = S_E40_26 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E40_4___ tree = S_E40_27 undefined sem_E40_5_S tree (S_E40_28 t1) = S_E40_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E40_5_S tree (S_E40_29 t1) = S_E40_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E40_5_Z tree = S_E40_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E40_5___ tree = S_E40_27 undefined 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 StatesOfE47 e_1 e_6 e_8 e_10 e_15 e_16 e_21 e_26 e_27 e_28 e_29 = S_E47_1 e_1 | S_E47_6 e_6 | S_E47_8 e_8 | S_E47_10 e_10 | S_E47_15 e_15 | S_E47_16 e_16 | S_E47_21 e_21 | S_E47_26 e_26 | S_E47_27 e_27 | S_E47_28 e_28 | S_E47_29 e_29 e_E47 x = case trav_E47_0 x of S_E47_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E47" trav_E47_0 (Z) = sem_E47_0_Z Z trav_E47_0 (S t1) = sem_E47_0_S (S t1) (trav_E47_1 t1) trav_E47_0 t = sem_E47_0___ t trav_E47_1 (Z) = sem_E47_1_Z Z trav_E47_1 (S t1) = sem_E47_1_S (S t1) (trav_E47_2 t1) trav_E47_1 t = sem_E47_1___ t trav_E47_2 (Z) = sem_E47_2_Z Z trav_E47_2 (S t1) = sem_E47_2_S (S t1) (trav_E47_3 t1) trav_E47_2 t = sem_E47_2___ t trav_E47_3 (Z) = sem_E47_3_Z Z trav_E47_3 (S t1) = sem_E47_3_S (S t1) (trav_E47_4 t1) trav_E47_3 t = sem_E47_3___ t trav_E47_4 (Z) = sem_E47_4_Z Z trav_E47_4 (S t1) = sem_E47_4_S (S t1) (trav_E47_5 t1) trav_E47_4 t = sem_E47_4___ t trav_E47_5 (Z) = sem_E47_5_Z Z trav_E47_5 (S t1) = sem_E47_5_S (S t1) (trav_E47_5 t1) trav_E47_5 t = sem_E47_5___ t sem_E47_0_S tree (S_E47_10 t1) = S_E47_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E58) return (r_v11)) (S (S r_v1)) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) (r_v11)) tmp_r1)) t1) sem_E47_0_S tree (S_E47_8 t1) = S_E47_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E58) return (r_v11)) (S Z) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) ()) tmp_r1)) t1) sem_E47_0_S tree (S_E47_6 t1) = S_E47_1 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) (r_v11)) tmp_r1)) t1) sem_E47_0_Z tree = S_E47_1 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil)) sem_E47_0___ tree = S_E47_27 undefined sem_E47_1_S tree (S_E47_16 t1) = S_E47_10 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E47_1_S tree (S_E47_28 t1) = S_E47_6 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E65) return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E47_1_S tree (S_E47_15 t1) = S_E47_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_E47_1_Z tree = S_E47_6 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E65) return (r_v11)) Z)) sem_E47_1___ tree = S_E47_27 undefined sem_E47_2_S tree (S_E47_21 t1) = S_E47_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E47_2_S tree (S_E47_29 t1) = S_E47_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E47_2_Z tree = S_E47_15 (return ()) sem_E47_2___ tree = S_E47_27 undefined sem_E47_3_S tree (S_E47_28 t1) = S_E47_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E47_3_S tree (S_E47_26 t1) = S_E47_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E47_3_Z tree = S_E47_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E47_3___ tree = S_E47_27 undefined sem_E47_4_S tree (S_E47_28 t1) = S_E47_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E47_4_S tree (S_E47_29 t1) = S_E47_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E47_4_Z tree = S_E47_26 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E47_4___ tree = S_E47_27 undefined sem_E47_5_S tree (S_E47_28 t1) = S_E47_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E47_5_S tree (S_E47_29 t1) = S_E47_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E47_5_Z tree = S_E47_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E47_5___ tree = S_E47_27 undefined data StatesOfE48 e_0 = S_E48_0 e_0 e_E48 x = case trav_E48_0 x of S_E48_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E48" trav_E48_0 t = sem_E48_0___ t sem_E48_0___ tree = S_E48_0 (return tree) data StatesOfE58 e_2 e_6 e_8 e_10 e_15 e_16 e_21 e_26 e_27 e_28 e_29 = S_E58_2 e_2 | S_E58_6 e_6 | S_E58_8 e_8 | S_E58_10 e_10 | S_E58_15 e_15 | S_E58_16 e_16 | S_E58_21 e_21 | S_E58_26 e_26 | S_E58_27 e_27 | S_E58_28 e_28 | S_E58_29 e_29 e_E58 x = case trav_E58_0 x of S_E58_2 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E58" trav_E58_0 (S t1) = sem_E58_0_S (S t1) (trav_E58_1 t1) trav_E58_0 t = sem_E58_0___ t trav_E58_1 (Z) = sem_E58_1_Z Z trav_E58_1 (S t1) = sem_E58_1_S (S t1) (trav_E58_2 t1) trav_E58_1 t = sem_E58_1___ t trav_E58_2 (Z) = sem_E58_2_Z Z trav_E58_2 (S t1) = sem_E58_2_S (S t1) (trav_E58_3 t1) trav_E58_2 t = sem_E58_2___ t trav_E58_3 (Z) = sem_E58_3_Z Z trav_E58_3 (S t1) = sem_E58_3_S (S t1) (trav_E58_4 t1) trav_E58_3 t = sem_E58_3___ t trav_E58_4 (Z) = sem_E58_4_Z Z trav_E58_4 (S t1) = sem_E58_4_S (S t1) (trav_E58_5 t1) trav_E58_4 t = sem_E58_4___ t trav_E58_5 (Z) = sem_E58_5_Z Z trav_E58_5 (S t1) = sem_E58_5_S (S t1) (trav_E58_5 t1) trav_E58_5 t = sem_E58_5___ t sem_E58_0_S tree (S_E58_10 t1) = S_E58_2 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S (S r_v1)) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) (r_v11)) tmp_r1)) t1) sem_E58_0_S tree (S_E58_8 t1) = S_E58_2 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E40) return (r_v11)) (S Z) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) ()) tmp_r1)) t1) sem_E58_0_S tree (S_E58_6 t1) = S_E58_2 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) (r_v11)) tmp_r1)) t1) sem_E58_0___ tree = S_E58_27 undefined sem_E58_1_S tree (S_E58_16 t1) = S_E58_10 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E58_1_S tree (S_E58_28 t1) = S_E58_6 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E58_1_S tree (S_E58_15 t1) = S_E58_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_E58_1_Z tree = S_E58_6 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E47) return (r_v11)) Z)) sem_E58_1___ tree = S_E58_27 undefined sem_E58_2_S tree (S_E58_21 t1) = S_E58_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E58_2_S tree (S_E58_29 t1) = S_E58_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E58_2_Z tree = S_E58_15 (return ()) sem_E58_2___ tree = S_E58_27 undefined sem_E58_3_S tree (S_E58_28 t1) = S_E58_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E58_3_S tree (S_E58_26 t1) = S_E58_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E58_3_Z tree = S_E58_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E58_3___ tree = S_E58_27 undefined sem_E58_4_S tree (S_E58_28 t1) = S_E58_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E58_4_S tree (S_E58_29 t1) = S_E58_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E58_4_Z tree = S_E58_26 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E58_4___ tree = S_E58_27 undefined sem_E58_5_S tree (S_E58_28 t1) = S_E58_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E58_5_S tree (S_E58_29 t1) = S_E58_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E58_5_Z tree = S_E58_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E58_5___ tree = S_E58_27 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 StatesOfE65 e_2 e_6 e_8 e_10 e_15 e_16 e_21 e_26 e_27 e_28 e_29 = S_E65_2 e_2 | S_E65_6 e_6 | S_E65_8 e_8 | S_E65_10 e_10 | S_E65_15 e_15 | S_E65_16 e_16 | S_E65_21 e_21 | S_E65_26 e_26 | S_E65_27 e_27 | S_E65_28 e_28 | S_E65_29 e_29 e_E65 x = case trav_E65_0 x of S_E65_2 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E65" trav_E65_0 (Z) = sem_E65_0_Z Z trav_E65_0 (S t1) = sem_E65_0_S (S t1) (trav_E65_1 t1) trav_E65_0 t = sem_E65_0___ t trav_E65_1 (Z) = sem_E65_1_Z Z trav_E65_1 (S t1) = sem_E65_1_S (S t1) (trav_E65_2 t1) trav_E65_1 t = sem_E65_1___ t trav_E65_2 (Z) = sem_E65_2_Z Z trav_E65_2 (S t1) = sem_E65_2_S (S t1) (trav_E65_3 t1) trav_E65_2 t = sem_E65_2___ t trav_E65_3 (Z) = sem_E65_3_Z Z trav_E65_3 (S t1) = sem_E65_3_S (S t1) (trav_E65_4 t1) trav_E65_3 t = sem_E65_3___ t trav_E65_4 (Z) = sem_E65_4_Z Z trav_E65_4 (S t1) = sem_E65_4_S (S t1) (trav_E65_5 t1) trav_E65_4 t = sem_E65_4___ t trav_E65_5 (Z) = sem_E65_5_Z Z trav_E65_5 (S t1) = sem_E65_5_S (S t1) (trav_E65_5 t1) trav_E65_5 t = sem_E65_5___ t sem_E65_0_S tree (S_E65_10 t1) = S_E65_2 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E58) return (r_v11)) (S (S r_v1)) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) (r_v11)) tmp_r1)) t1) sem_E65_0_S tree (S_E65_8 t1) = S_E65_2 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E58) return (r_v11)) (S Z) >>= (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B0 r_v1))) ()) tmp_r1)) t1) sem_E65_0_S tree (S_E65_6 t1) = S_E65_2 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (Cons B1 r_v1)) (r_v11)) tmp_r1)) t1) sem_E65_0_Z tree = S_E65_2 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Nil)) sem_E65_0___ tree = S_E65_27 undefined sem_E65_1_S tree (S_E65_16 t1) = S_E65_10 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E65_1_S tree (S_E65_28 t1) = S_E65_6 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E65) return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E65_1_S tree (S_E65_15 t1) = S_E65_8 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\() -> return ()) tmp_r1)) t1) sem_E65_1_Z tree = S_E65_6 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- (return r_x1 >>= e_E65) return (r_v11)) Z)) sem_E65_1___ tree = S_E65_27 undefined sem_E65_2_S tree (S_E65_21 t1) = S_E65_16 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E65_2_S tree (S_E65_29 t1) = S_E65_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E65_2_Z tree = S_E65_15 (return ()) sem_E65_2___ tree = S_E65_27 undefined sem_E65_3_S tree (S_E65_28 t1) = S_E65_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E65_3_S tree (S_E65_26 t1) = S_E65_21 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E65_3_Z tree = S_E65_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E65_3___ tree = S_E65_27 undefined sem_E65_4_S tree (S_E65_28 t1) = S_E65_26 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E65_4_S tree (S_E65_29 t1) = S_E65_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E65_4_Z tree = S_E65_26 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E65_4___ tree = S_E65_27 undefined sem_E65_5_S tree (S_E65_28 t1) = S_E65_29 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> (\(r_v1) -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) (S r_v1)) (r_v11)) tmp_r1)) t1) sem_E65_5_S tree (S_E65_29 t1) = S_E65_28 ((\(x1_1) -> (do tmp_r1 <- x1_1 (\(r_v11) -> return (r_v11)) tmp_r1)) t1) sem_E65_5_Z tree = S_E65_29 (return () >>= (\() -> (\(r_x1) -> do (r_v11) <- return r_x1 return (r_v11)) Z)) sem_E65_5___ tree = S_E65_27 undefined 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 StatesOfE76 e_0 = S_E76_0 e_0 e_E76 x = case trav_E76_0 x of S_E76_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E76" trav_E76_0 t = sem_E76_0___ t sem_E76_0___ tree = S_E76_0 (return tree) data StatesOfE92 e_0 = S_E92_0 e_0 e_E92 x = case trav_E92_0 x of S_E92_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E92" trav_E92_0 t = sem_E92_0___ t sem_E92_0___ tree = S_E92_0 (return tree) bin2peano (Cons (B0) (Nil)) = Z bin2peano (Cons (B1) (Nil)) = S Z bin2peano (Cons (B0) (Cons a x)) = doubleP (bin2peano1 (Cons a x)) bin2peano (Cons (B1) (Cons a x)) = S (doubleP (bin2peano1 (Cons a x))) bin2peano1 (Cons (B0) x) = doubleP (bin2peano1 x) bin2peano1 (Cons (B1) x) = S (double (bin2peano2 x)) bin2peano2 (Nil) = Z bin2peano2 (Cons (B0) x) = doubleP (bin2peano1 x) bin2peano2 (Cons (B1) x) = S (double (bin2peano2 x)) double (Z) = Z double (S x) = S (S (double x)) doubleP (S (Z)) = S (S Z) doubleP (S (S x)) = S (S (S (S (double x))))