main = While.Start While.Start = While.value_28 (While.ssos (While.Comp (While.Ass 4 (While.V 3)) (While.While (While.Neg (While.Eq (While.V 4) (While.N 0))) (While.Comp (While.Comp (While.Comp (While.Comp (While.Ass 0 (While.V 3)) (While.Ass 1 (While.V 4))) (While.While (While.Le (While.V 1) (While.V 0)) (While.Comp (While.Ass 0 (While.Sub (While.V 0) (While.V 1))) (While.Ass 2 (While.Add (While.V 2) (While.N 1)))))) (While.If (While.Eq (While.V 0) (While.N 0)) (While.Ass 5 (While.Add (While.V 5) (While.N 1))) While.Skip)) (While.Ass 4 (While.Sub (While.V 4) (While.N 1)))))) (Flite.Cons (Flite.Pair 0 0) (Flite.Cons (Flite.Pair 1 0) (Flite.Cons (Flite.Pair 2 0) (Flite.Cons (Flite.Pair 3 14000) (Flite.Cons (Flite.Pair 4 0) (Flite.Cons (Flite.Pair 5 0) Flite.Nil))))))) 5 While.id While.id !x_0 = x_0 :: Flite.List = Flite.Nil | Flite.Cons a1 a2 :: Flite.Pair = Flite.Pair a1 a2 :: While.Val = While.N a1 | While.V a1 | While.Add a1 a2 | While.Sub a1 a2 :: While.Stm = While.Ass a1 a2 | While.Skip | While.Comp a1 a2 | While.If a1 a2 a3 | While.While a1 a2 :: While.BVal = While.TRUE | While.FALSE | While.Eq a1 a2 | While.Le a1 a2 | While.Neg a1 | While.And a1 a2 While.ssos !ss_0 s_1 = While.run (While.Inter ss_0 s_1) :: While.State = While.Inter a1 a2 | While.Final a1 While.run !_x_0 = select _x_0 (While.Inter ss_1_0 s_1_1 -> While.run (While.sosstm ss_1_0 s_1_1)) (While.Final s_1_0 -> s_1_0) While.sosstm !_x_0 s_1 = select _x_0 (While.Ass x_1_0 a_1_1 -> While.aval a_1_1 s_1 (While.update_32 s_1 x_1_0 While.Final)) (While.Skip -> While.Final s_1) (While.Comp ss1_1_0 ss2_1_1 -> <{While._c;60;3_33}> (While.sosstm ss1_1_0 s_1) ss2_1_1) (While.If b_1_0 ss1_1_1 ss2_1_2 -> While.bval b_1_0 s_1 (While.cond s_1 ss1_1_1 ss2_1_2)) (While.While b_1_0 ss_1_1 -> While.Inter (While.If b_1_0 (While.Comp ss_1_1 (While.While b_1_0 ss_1_1)) While.Skip) s_1) While.cond s_0 ss1_1 ss2_2 !c_3 = if c_3 (While.Inter ss1_1 s_0) (While.Inter ss2_2 s_0) While.bval !_x_0 s_1 k_2 = select _x_0 (While.TRUE -> k_2 True) (While.FALSE -> k_2 False) (While.Eq a1_1_0 a2_1_1 -> While.seq (While.aval a1_1_0 s_1) (While.aval a2_1_1 s_1) (While.eq_29 k_2)) (While.Le a1_1_0 a2_1_1 -> While.seq (While.aval a1_1_0 s_1) (While.aval a2_1_1 s_1) (While.leq_30 k_2)) (While.Neg b_1_0 -> While.bval b_1_0 s_1 (While.invk k_2)) (While.And a1_1_0 a2_1_1 -> While.seq (While.bval a1_1_0 s_1) (While.bval a2_1_1 s_1) (While.andk k_2)) While.andk !k_0 !a_1 b_2 = While.bool (While.and a_1 b_2) k_0 While.and !_x_0 x_1 = if _x_0 x_1 False While.bool !_x_0 !k_1 = if _x_0 (k_1 True) (k_1 False) While.seq !f_0 g_1 k_2 = f_0 (While.comp g_1 k_2) While.comp !f_0 g_1 x_2 = f_0 (g_1 x_2) While.invk !k_0 !a_1 = While.bool (While.inv a_1) k_0 While.inv !_x_0 = if _x_0 False True While.leq_30 !k_0 !a_1 !b_2 = While.bool (<{While.<=_31}> a_1 b_2) k_0 <{While.<=_31}> !x_0 !y_1 = not (lt y_1 x_0) While.aval !_x_0 s_1 k_2 = select _x_0 (While.N n_1_0 -> k_2 n_1_0) (While.V x_1_0 -> While.value_28 s_1 x_1_0 k_2) (While.Add a1_1_0 a2_1_1 -> While.seq (While.aval a1_1_0 s_1) (While.aval a2_1_1 s_1) (While.add k_2)) (While.Sub a1_1_0 a2_1_1 -> While.seq (While.aval a1_1_0 s_1) (While.aval a2_1_1 s_1) (While.sub k_2)) While.sub !k_0 !a_1 !b_2 = While.int (sub a_1 b_2) k_0 While.int !n_0 !k_1 = if (eq n_0 0) (k_1 0) (k_1 n_0) While.add !k_0 !a_1 !b_2 = While.int (add a_1 b_2) k_0 While.value_28 !_x_0 !v_1 !k_2 = select _x_0 (Flite.Cons _x_1_0 s_1_1 -> select _x_1_0 (Flite.Pair x_2_0 y_2_1 -> if (eq x_2_0 v_1) (k_2 y_2_1) (While.value_28 s_1_1 v_1 k_2)) ) While.eq_29 !k_0 !a_1 !b_2 = While.bool (eq a_1 b_2) k_0 <{While._c;60;3_33}> !_x_0 ss2_1 = select _x_0 (While.Inter ss10_1_0 s0_1_1 -> While.Inter (While.Comp ss10_1_0 ss2_1) s0_1_1) (While.Final s0_1_0 -> While.Inter ss2_1 s0_1_0) While.update_32 !_x_0 v_1 k_2 i_3 = select _x_0 (Flite.Nil -> k_2 Flite.Nil) (Flite.Cons _x_1_0 s_1_1 -> select _x_1_0 (Flite.Pair x_2_0 y_2_1 -> if (eq x_2_0 v_1) (While.update_32 s_1_1 v_1 (While.upd k_2 v_1 i_3) i_3) (While.update_32 s_1_1 v_1 (While.upd k_2 x_2_0 y_2_1) i_3)) ) While.upd !k_0 x_1 y_2 s_3 = k_0 (Flite.Cons (Flite.Pair x_1 y_2) s_3)