{-# OPTIONS -XNoMonomorphismRestriction #-} module INCBIN (inv_Finc,inc) where import Control.Monad import InvUtil import Data.Tuple import MyData inv_Finc = runI . e_Finc data StatesOfFinc e_1 e_9 e_11 e_12 e_13 e_14 e_15 = S_Finc_1 e_1 | S_Finc_9 e_9 | S_Finc_11 e_11 | S_Finc_12 e_12 | S_Finc_13 e_13 | S_Finc_14 e_14 | S_Finc_15 e_15 e_Finc x = case trav_Finc_0 x of S_Finc_1 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: Finc" trav_Finc_0 (Cons t1 t2) = sem_Finc_0_Cons (Cons t1 t2) (trav_Finc_2 t1) (trav_Finc_1 t2) trav_Finc_0 t = sem_Finc_0___ t trav_Finc_1 (Nil) = sem_Finc_1_Nil Nil trav_Finc_1 (Cons t1 t2) = sem_Finc_1_Cons (Cons t1 t2) (trav_Finc_2 t1) (trav_Finc_1 t2) trav_Finc_1 t = sem_Finc_1___ t trav_Finc_2 (B1) = sem_Finc_2_B1 B1 trav_Finc_2 (B0) = sem_Finc_2_B0 B0 trav_Finc_2 t = sem_Finc_2___ t sem_Finc_0_Cons tree (S_Finc_14 t1) (S_Finc_12 t2) = S_Finc_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_v21) -> return (r_v21)) (\(r_v1) -> return (Cons B1 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Finc_0_Cons tree (S_Finc_15 t1) (S_Finc_12 t2) = S_Finc_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) -> return (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Finc_0_Cons tree (S_Finc_14 t1) (S_Finc_9 t2) = S_Finc_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 ()) (\() -> return Nil) tmp_r1 tmp_r2)) t1 t2) sem_Finc_0_Cons tree (S_Finc_15 t1) (S_Finc_9 t2) = S_Finc_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_v21) -> return (r_v21)) (\(r_v1) -> return (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Finc_0_Cons tree (S_Finc_15 t1) (S_Finc_11 t2) = S_Finc_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) -> return (Cons B0 r_v1)) tmp_r1 tmp_r2)) t1 t2) sem_Finc_0___ tree = S_Finc_13 undefined sem_Finc_1_Cons tree (S_Finc_13 t1) (S_Finc_12 t2) = S_Finc_11 ((\(_) (_) -> (return tree)) t1 t2) sem_Finc_1_Cons tree (S_Finc_14 t1) (S_Finc_12 t2) = S_Finc_12 ((\(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_Finc_1_Cons tree (S_Finc_15 t1) (S_Finc_12 t2) = S_Finc_12 ((\(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_Finc_1_Cons tree (S_Finc_13 t1) (S_Finc_9 t2) = S_Finc_11 ((\(_) (_) -> (return tree)) t1 t2) sem_Finc_1_Cons tree (S_Finc_14 t1) (S_Finc_9 t2) = S_Finc_12 ((\(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_Finc_1_Cons tree (S_Finc_14 t1) (S_Finc_11 t2) = S_Finc_11 ((\(_) (_) -> (return tree)) t1 t2) sem_Finc_1_Cons tree (S_Finc_15 t1) (S_Finc_9 t2) = S_Finc_12 ((\(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_Finc_1_Cons tree (S_Finc_15 t1) (S_Finc_11 t2) = S_Finc_12 ((\(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_Finc_1_Cons tree (S_Finc_13 t1) (S_Finc_11 t2) = S_Finc_11 ((\(_) (_) -> (return tree)) t1 t2) sem_Finc_1_Nil tree = S_Finc_9 (return (), return tree) sem_Finc_1___ tree = S_Finc_11 (return tree) sem_Finc_2_B0 tree = S_Finc_14 (return (), return ()) sem_Finc_2_B1 tree = S_Finc_15 (return ()) sem_Finc_2___ tree = S_Finc_13 undefined data StatesOfE19 e_0 = S_E19_0 e_0 e_E19 x = case trav_E19_0 x of S_E19_0 y -> y _ -> fail "Input is not the range of the expression/function corresponding to the state: E19" trav_E19_0 t = sem_E19_0___ t sem_E19_0___ tree = S_E19_0 (return tree) inc (Nil) = Cons B0 Nil inc (Cons (B0) x) = Cons B1 x inc (Cons (B1) x) = Cons B0 (inc x)