Add CSE bug

This commit is contained in:
Andor Penzes 2019-02-05 01:49:09 +01:00
parent 823cfb87b5
commit 352ad3ca0e
5 changed files with 626 additions and 0 deletions

View File

@ -0,0 +1,305 @@
primop effectful
_prim_int_print :: T_Int64 -> T_Unit
_prim_string_print :: T_String -> T_Unit
_prim_read_string :: T_String
_prim_usleep :: T_Int64 -> T_Unit
_prim_error :: T_String -> T_Unit
_prim_ffi_file_eof :: T_Int64 -> T_Int64
primop pure
_prim_string_concat :: T_String -> T_String -> T_String
_prim_string_reverse :: T_String -> T_String
_prim_string_lt :: T_String -> T_String -> T_Bool
_prim_string_eq :: T_String -> T_String -> T_Bool
_prim_string_head :: T_String -> T_Int64
_prim_string_tail :: T_String -> T_String
_prim_string_cons :: T_Int64 -> T_String -> T_String
_prim_string_len :: T_String -> T_Int64
_prim_int_str :: T_Int64 -> T_String
_prim_str_int :: T_String -> T_Int64
_prim_int_float :: T_Int64 -> T_Float
_prim_float_string :: T_Float -> T_String
_prim_char_int :: T_Char -> T_Int64
_prim_int_add :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_sub :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_mul :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_div :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_eq :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_ne :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_gt :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_ge :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_lt :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_le :: T_Int64 -> T_Int64 -> T_Bool
_prim_word_add :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_sub :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_mul :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_div :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_eq :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_ne :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_gt :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_ge :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_lt :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_le :: T_Word64 -> T_Word64 -> T_Bool
_prim_float_add :: T_Float -> T_Float -> T_Float
_prim_float_sub :: T_Float -> T_Float -> T_Float
_prim_float_mul :: T_Float -> T_Float -> T_Float
_prim_float_div :: T_Float -> T_Float -> T_Float
_prim_float_eq :: T_Float -> T_Float -> T_Bool
_prim_float_ne :: T_Float -> T_Float -> T_Bool
_prim_float_gt :: T_Float -> T_Float -> T_Bool
_prim_float_ge :: T_Float -> T_Float -> T_Bool
_prim_float_lt :: T_Float -> T_Float -> T_Bool
_prim_float_le :: T_Float -> T_Float -> T_Bool
_prim_bool_eq :: T_Bool -> T_Bool -> T_Bool
_prim_bool_ne :: T_Bool -> T_Bool -> T_Bool
grinMain =
idr_Main.main3_val.0 <- pure (C"idr_{U_Main.{main_1}_1}")
idr_Main.main3.0 <- store idr_Main.main3_val.0
idr_Main.main4_val.0 <- pure (Cidr_Main.Same)
idr_Main.main4.0 <- store idr_Main.main4_val.0
idr_Main.main1_val.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main3.0 idr_Main.main4.0
idr_Main.main4_val_125.0 <- pure (C"idr_{U_Main.{main_2}_1}")
idr_Main.main4_126.0 <- store idr_Main.main4_val_125.0
idr_Main.main5.0 <- pure idr_Main.main4.0
idr_Main.main2_val_120.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main4_126.0 idr_Main.main4.0
idr_Main.main5_val_133.0 <- pure (C"idr_{U_Main.{main_3}_1}")
idr_Main.main5_134.0 <- store idr_Main.main5_val_133.0
idr_Main.main6.0 <- pure idr_Main.main4.0
idr_Main.main3_val_128.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main5_134.0 idr_Main.main4.0
idr_Main.main6_142.0 <- pure idr_Main.main3.0
idr_Main.main7.0 <- pure idr_Main.main4.0
idr_Main.main4_val_136.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main3.0 idr_Main.main4.0
idr_Main.main7_val_149.0 <- pure (C"idr_{U_Main.{main_5}_1}")
idr_Main.main7_150.0 <- store idr_Main.main7_val_149.0
idr_Main.main11_val.0 <- pure (Cidr_Main.::)
idr_Main.main11.0 <- store idr_Main.main11_val.0
idr_Main.main9.0.58.0.arity.1 <- pure 2
idr_Main.main10.0.58.0.arity.1 <- pure idr_Main.main9.0.58.0.arity.1
idr_Main.exactLength4_val.0 <- idr_Main.checkEqNat $ idr_Main.main9.0.58.0.arity.1 idr_Main.main9.0.58.0.arity.1
idr_Main.main8_val_151.0 <- case idr_Main.exactLength4_val.0 of
(Cidr_Prelude.Maybe.Just idr_Main.exactLength5.0) ->
pure (Cidr_Prelude.Maybe.Just idr_Main.main11.0)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Maybe.Nothing)
idr_Main.main8_val.0 <- case idr_Main.main8_val_151.0 of
(Cidr_Prelude.Maybe.Just idr_Main.main9_155.0) ->
pure (Cidr_Prelude.Bool.True)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Bool.False)
idr_Main.main8_156.0 <- store idr_Main.main8_val.0
idr_Main.main5_val_144.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main7_150.0 idr_Main.main8_156.0
idr_Main.main8_164.0 <- pure idr_Main.main7_150.0
idr_Main.main9_168.49.3.arity.1.0 <- pure 10
idr_Main.main10_170.49.3.arity.1.0 <- pure idr_Main.main9_168.49.3.arity.1.0
idr_Main.main9_val_166.0 <- idr_Main.checkEqNat2 $ idr_Main.main9_168.49.3.arity.1.0 idr_Main.main9_168.49.3.arity.1.0
idr_Main.main9_val_165.0 <- case idr_Main.main9_val_166.0 of
(Cidr_Prelude.Maybe.Just idr_Main.main10_173.0) ->
pure (Cidr_Prelude.Bool.True)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Bool.False)
idr_Main.main9_174.0 <- store idr_Main.main9_val_165.0
idr_Main.main6_val_158.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main7_150.0 idr_Main.main9_174.0
idr_Main.main9_181.0 <- pure idr_Main.main7_150.0
idr_Main.main10_185.49.4.arity.1.0 <- pure idr_Main.main9_168.49.3.arity.1.0
idr_Main.main11_187.49.4.arity.1.0 <- pure 9
idr_Main.main10_val_183.0 <- idr_Main.checkEqNat2 $ idr_Main.main9_168.49.3.arity.1.0 idr_Main.main11_187.49.4.arity.1.0
idr_Main.main10_val_182.0 <- case idr_Main.main10_val_183.0 of
(Cidr_Prelude.Maybe.Just idr_Main.main11_190.0) ->
pure (Cidr_Prelude.Bool.False)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Bool.True)
idr_Main.main10_191.0 <- store idr_Main.main10_val_182.0
"idr_{runMain_0}0_val.0" <- idr_Prelude.Interactive.printLn' $ idr_Main.main7_150.0 idr_Main.main10_191.0
pure ()
idr_Main.checkEqNat idr_Main.checkEqNat0.49.arity.1 idr_Main.checkEqNat1.49.arity.1 =
case idr_Main.checkEqNat1.49.arity.1 of
0 ->
case idr_Main.checkEqNat0.49.arity.1 of
0 ->
idr_Main.checkEqNat2_val <- pure (Cidr_Main.Same)
idr_Main.checkEqNat2_2 <- store idr_Main.checkEqNat2_val
pure (Cidr_Prelude.Maybe.Just idr_Main.checkEqNat2_2)
#default ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat2_13.40.1.arity.1 <- pure 1
idris_int_sub2.1 <- _prim_int_sub $ idr_Main.checkEqNat1.49.arity.1 idr_Main.checkEqNat2_13.40.1.arity.1
case idr_Main.checkEqNat0.49.arity.1 of
0 ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat3.40.2.arity.1 <- pure idr_Main.checkEqNat2_13.40.1.arity.1
idris_int_sub2.2 <- _prim_int_sub $ idr_Main.checkEqNat0.49.arity.1 idr_Main.checkEqNat2_13.40.1.arity.1
idr_Main.checkEqNat4_val <- idr_Main.checkEqNat $ idris_int_sub2.2 idris_int_sub2.1
case idr_Main.checkEqNat4_val of
(Cidr_Prelude.Maybe.Just idr_Main.checkEqNat5) ->
idr_Main.checkEqNat6_val <- pure (Cidr_Main.Same)
idr_Main.checkEqNat6 <- store idr_Main.checkEqNat6_val
pure (Cidr_Prelude.Maybe.Just idr_Main.checkEqNat6)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Maybe.Nothing)
idr_Main.checkEqNat2 idr_Main.checkEqNat20.49.arity.1 idr_Main.checkEqNat21.49.arity.1 =
case idr_Main.checkEqNat21.49.arity.1 of
0 ->
case idr_Main.checkEqNat20.49.arity.1 of
0 ->
idr_Main.checkEqNat22_val <- pure (Cidr_Refl)
idr_Main.checkEqNat22 <- store idr_Main.checkEqNat22_val
pure (Cidr_Prelude.Maybe.Just idr_Main.checkEqNat22)
#default ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat22_67.40.4.arity.1 <- pure 1
idris_int_sub2.4 <- _prim_int_sub $ idr_Main.checkEqNat21.49.arity.1 idr_Main.checkEqNat22_67.40.4.arity.1
case idr_Main.checkEqNat20.49.arity.1 of
0 ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat23.40.5.arity.1 <- pure idr_Main.checkEqNat22_67.40.4.arity.1
idris_int_sub2.5 <- _prim_int_sub $ idr_Main.checkEqNat20.49.arity.1 idr_Main.checkEqNat22_67.40.4.arity.1
idr_Main.checkEqNat27_val <- idr_Main.checkEqNat2 $ idris_int_sub2.5 idris_int_sub2.4
"idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:03_val.0" <- pure idr_Main.checkEqNat27_val
case idr_Main.checkEqNat27_val of
(Cidr_Prelude.Maybe.Just "idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:04.0") ->
"idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05_val.0" <- pure (Cidr_Refl)
"idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05.0" <- store "idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05_val.0"
pure (Cidr_Prelude.Maybe.Just "idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05.0")
(Cidr_Prelude.Maybe.Nothing) ->
pure idr_Main.checkEqNat27_val
idr_Prelude.Show.primNumShow.unboxed idr_Prelude.Show.primNumShow3 =
(CGrInt idr_prim__toStrBigInt0.40.13.arity.1.0) <- fetch idr_Prelude.Show.primNumShow3
idris_int_str2.0 <- _prim_int_str $ idr_prim__toStrBigInt0.40.13.arity.1.0
ccp.3 <- pure 0
idr_Prelude.Show.primNumShow5_val_194 <- pure (CGrInt ccp.3)
idr_Prelude.Show.primNumShow6_val <- pure (CGrInt 5)
"idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:00.40.22.arity.1.0" <- pure ccp.3
"idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0" <- pure 5
idris_int_eq2.0 <- _prim_int_eq $ ccp.3 "idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0"
ccp.0.0 <- case idris_int_eq2.0 of
#False ->
pure ccp.3
#True ->
pure 1
idr_Prelude.Show.primNumShow5_val_193 <- case ccp.0.0 of
0 ->
idris_int_lt2.0 <- _prim_int_lt $ ccp.3 "idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0"
ccp.1.0 <- case idris_int_lt2.0 of
#False ->
pure ccp.0.0
#True ->
pure 1
case ccp.1.0 of
0 ->
pure (Cidr_Prelude.Interfaces.GT)
#default ->
pure (Cidr_Prelude.Interfaces.LT)
#default ->
pure (Cidr_Prelude.Interfaces.EQ)
idr_Prelude.Show.primNumShow5_val_192 <- case idr_Prelude.Show.primNumShow5_val_193 of
(Cidr_Prelude.Interfaces.GT) ->
pure (Cidr_Prelude.Bool.True)
#default ->
ccp.4 <- pure ccp.3
idr_Prelude.Show.primNumShow7.40.6.arity.1 <- pure 5
idris_int_eq2.1 <- _prim_int_eq $ ccp.3 idr_Prelude.Show.primNumShow7.40.6.arity.1
ccp.0.1 <- case idris_int_eq2.1 of
#False ->
pure ccp.3
#True ->
pure 1
case ccp.0.1 of
0 ->
pure (Cidr_Prelude.Bool.False)
#default ->
pure (Cidr_Prelude.Bool.True)
idr_Prelude.Show.primNumShow5_val <- case idr_Prelude.Show.primNumShow5_val_192 of
(Cidr_Prelude.Bool.False) ->
pure (Cidr_Prelude.Bool.False)
(Cidr_Prelude.Bool.True) ->
idr_Prelude.Show.primNumShow6_209.40.7.arity.1 <- pure #""
idris_str_eq3.0 <- _prim_string_eq $ idris_int_str2.0 idr_Prelude.Show.primNumShow6_209.40.7.arity.1
ccp.2.0 <- case idris_str_eq3.0 of
#False ->
pure ccp.3
#True ->
pure 1
idr_Prelude.Show.primNumShow6_val_206 <- case ccp.2.0 of
0 ->
pure (Cidr_Prelude.Bool.True)
#default ->
pure (Cidr_Prelude.Bool.False)
idr_Prelude.Show.primNumShow7_val_214 <- pure (Cidr_Prelude.Bool.True)
"idr_Decidable.Equality.Decidable.Equality.@Decidable.Equality.DecEq$Bool:!decEq:00_val_246.0" <- pure idr_Prelude.Show.primNumShow6_val_206
idr_Prelude.Show.primNumShow6_val_205 <- case idr_Prelude.Show.primNumShow6_val_206 of
(Cidr_Prelude.Bool.False) ->
pure (Cidr_Prelude.Basics.No)
(Cidr_Prelude.Bool.True) ->
pure (Cidr_Prelude.Basics.Yes)
case idr_Prelude.Show.primNumShow6_val_205 of
(Cidr_Prelude.Basics.No) ->
pure (Cidr_Prelude.Bool.False)
(Cidr_Prelude.Basics.Yes) ->
idris_str_head2.0 <- _prim_string_head $ idris_int_str2.0
idr_Prelude.Show.primNumShow8.40.10.arity.1 <- pure 45
idris_int_eq2.2 <- _prim_int_eq $ idris_str_head2.0 idr_Prelude.Show.primNumShow8.40.10.arity.1
ccp.0.2 <- case idris_int_eq2.2 of
#False ->
pure ccp.3
#True ->
pure 1
case ccp.0.2 of
0 ->
pure (Cidr_Prelude.Bool.False)
#default ->
pure idr_Prelude.Show.primNumShow7_val_214
case idr_Prelude.Show.primNumShow5_val of
(Cidr_Prelude.Bool.False) ->
pure idris_int_str2.0
(Cidr_Prelude.Bool.True) ->
idr_Prelude.Show.primNumShow7_230.40.11.arity.1 <- pure #")"
idris_str_concat3.0 <- _prim_string_concat $ idris_int_str2.0 idr_Prelude.Show.primNumShow7_230.40.11.arity.1
idr_Prelude.Show.primNumShow6_227.40.12.arity.1 <- pure #"("
_prim_string_concat $ idr_Prelude.Show.primNumShow6_227.40.12.arity.1 idris_str_concat3.0
idr_Prelude.Interactive.printLn' idr_Prelude.Interactive.printLn'2 idr_Prelude.Interactive.printLn'3 =
"idr_{APPLY_0}0_val.1" <- fetch idr_Prelude.Interactive.printLn'2
ccp.0 <- case "idr_{APPLY_0}0_val.1" of
(C"idr_{U_Main.{main_1}_1}") ->
"idr_Main.{main_1}3_val.0" <- pure (C"idr_{U_prim__toStrBigInt_1}")
"idr_Main.{main_1}3.0" <- store "idr_Main.{main_1}3_val.0"
"idr_Main.{main_1}5_val.0" <- pure (CGrInt 4)
"idr_Main.{main_1}5.0" <- store "idr_Main.{main_1}5_val.0"
unboxed.CGrString.8.0 <- idr_Prelude.Show.primNumShow.unboxed $ "idr_Main.{main_1}5.0"
"idr_Main.{main_1}1.40.17.arity.1.0" <- pure #"Same "
_prim_string_concat $ "idr_Main.{main_1}1.40.17.arity.1.0" unboxed.CGrString.8.0
(C"idr_{U_Main.{main_2}_1}") ->
"idr_Main.{main_2}3_val.0" <- pure (C"idr_{U_prim__toStrBigInt_1}")
"idr_Main.{main_2}3.0" <- store "idr_Main.{main_2}3_val.0"
"idr_Main.{main_2}5_val.0" <- pure (CGrInt 5)
"idr_Main.{main_2}5.0" <- store "idr_Main.{main_2}5_val.0"
unboxed.CGrString.9.0 <- idr_Prelude.Show.primNumShow.unboxed $ "idr_Main.{main_2}5.0"
"idr_Main.{main_2}1.40.19.arity.1.0" <- pure #"Same "
_prim_string_concat $ "idr_Main.{main_2}1.40.19.arity.1.0" unboxed.CGrString.9.0
(C"idr_{U_Main.{main_3}_1}") ->
"idr_Main.{main_3}3_val.0" <- pure (C"idr_{U_prim__toStrBigInt_1}")
"idr_Main.{main_3}3.0" <- store "idr_Main.{main_3}3_val.0"
"idr_Main.{main_3}5_val.0" <- pure (CGrInt 3)
"idr_Main.{main_3}5.0" <- store "idr_Main.{main_3}5_val.0"
unboxed.CGrString.10.0 <- idr_Prelude.Show.primNumShow.unboxed $ "idr_Main.{main_3}5.0"
"idr_Main.{main_3}1.40.21.arity.1.0" <- pure #"Same "
_prim_string_concat $ "idr_Main.{main_3}1.40.21.arity.1.0" unboxed.CGrString.10.0
(C"idr_{U_Main.{main_5}_1}") ->
"idr_Main.{main_5}0_val.0" <- fetch idr_Prelude.Interactive.printLn'3
case "idr_Main.{main_5}0_val.0" of
(Cidr_Prelude.Bool.False) ->
pure #"False"
(Cidr_Prelude.Bool.True) ->
pure #"True"
idr_Prelude.Interactive.printLn'6.40.14.arity.1 <- pure #"\n"
idris_str_concat3.5 <- _prim_string_concat $ ccp.0 idr_Prelude.Interactive.printLn'6.40.14.arity.1
_prim_string_print $ idris_str_concat3.5
pure (Cidr_MkUnit)

View File

@ -0,0 +1,305 @@
primop effectful
_prim_int_print :: T_Int64 -> T_Unit
_prim_string_print :: T_String -> T_Unit
_prim_read_string :: T_String
_prim_usleep :: T_Int64 -> T_Unit
_prim_error :: T_String -> T_Unit
_prim_ffi_file_eof :: T_Int64 -> T_Int64
primop pure
_prim_string_concat :: T_String -> T_String -> T_String
_prim_string_reverse :: T_String -> T_String
_prim_string_lt :: T_String -> T_String -> T_Bool
_prim_string_eq :: T_String -> T_String -> T_Bool
_prim_string_head :: T_String -> T_Int64
_prim_string_tail :: T_String -> T_String
_prim_string_cons :: T_Int64 -> T_String -> T_String
_prim_string_len :: T_String -> T_Int64
_prim_int_str :: T_Int64 -> T_String
_prim_str_int :: T_String -> T_Int64
_prim_int_float :: T_Int64 -> T_Float
_prim_float_string :: T_Float -> T_String
_prim_char_int :: T_Char -> T_Int64
_prim_int_add :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_sub :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_mul :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_div :: T_Int64 -> T_Int64 -> T_Int64
_prim_int_eq :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_ne :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_gt :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_ge :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_lt :: T_Int64 -> T_Int64 -> T_Bool
_prim_int_le :: T_Int64 -> T_Int64 -> T_Bool
_prim_word_add :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_sub :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_mul :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_div :: T_Word64 -> T_Word64 -> T_Word64
_prim_word_eq :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_ne :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_gt :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_ge :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_lt :: T_Word64 -> T_Word64 -> T_Bool
_prim_word_le :: T_Word64 -> T_Word64 -> T_Bool
_prim_float_add :: T_Float -> T_Float -> T_Float
_prim_float_sub :: T_Float -> T_Float -> T_Float
_prim_float_mul :: T_Float -> T_Float -> T_Float
_prim_float_div :: T_Float -> T_Float -> T_Float
_prim_float_eq :: T_Float -> T_Float -> T_Bool
_prim_float_ne :: T_Float -> T_Float -> T_Bool
_prim_float_gt :: T_Float -> T_Float -> T_Bool
_prim_float_ge :: T_Float -> T_Float -> T_Bool
_prim_float_lt :: T_Float -> T_Float -> T_Bool
_prim_float_le :: T_Float -> T_Float -> T_Bool
_prim_bool_eq :: T_Bool -> T_Bool -> T_Bool
_prim_bool_ne :: T_Bool -> T_Bool -> T_Bool
grinMain =
idr_Main.main3_val.0 <- pure (C"idr_{U_Main.{main_1}_1}")
idr_Main.main3.0 <- store idr_Main.main3_val.0
idr_Main.main4_val.0 <- pure (Cidr_Main.Same)
idr_Main.main4.0 <- store idr_Main.main4_val.0
idr_Main.main1_val.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main3.0 idr_Main.main4.0
idr_Main.main4_val_125.0 <- pure (C"idr_{U_Main.{main_2}_1}")
idr_Main.main4_126.0 <- store idr_Main.main4_val_125.0
idr_Main.main5.0 <- pure idr_Main.main4.0
idr_Main.main2_val_120.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main4_126.0 idr_Main.main4.0
idr_Main.main5_val_133.0 <- pure (C"idr_{U_Main.{main_3}_1}")
idr_Main.main5_134.0 <- store idr_Main.main5_val_133.0
idr_Main.main6.0 <- pure idr_Main.main4.0
idr_Main.main3_val_128.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main5_134.0 idr_Main.main4.0
idr_Main.main6_142.0 <- pure idr_Main.main3.0
idr_Main.main7.0 <- pure idr_Main.main4.0
idr_Main.main4_val_136.0 <- pure idr_Main.main1_val.0
idr_Main.main7_val_149.0 <- pure (C"idr_{U_Main.{main_5}_1}")
idr_Main.main7_150.0 <- store idr_Main.main7_val_149.0
idr_Main.main11_val.0 <- pure (Cidr_Main.::)
idr_Main.main11.0 <- store idr_Main.main11_val.0
idr_Main.main9.0.58.0.arity.1 <- pure 2
idr_Main.main10.0.58.0.arity.1 <- pure idr_Main.main9.0.58.0.arity.1
idr_Main.exactLength4_val.0 <- idr_Main.checkEqNat $ idr_Main.main9.0.58.0.arity.1 idr_Main.main9.0.58.0.arity.1
idr_Main.main8_val_151.0 <- case idr_Main.exactLength4_val.0 of
(Cidr_Prelude.Maybe.Just idr_Main.exactLength5.0) ->
pure (Cidr_Prelude.Maybe.Just idr_Main.main11.0)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Maybe.Nothing)
idr_Main.main8_val.0 <- case idr_Main.main8_val_151.0 of
(Cidr_Prelude.Maybe.Just idr_Main.main9_155.0) ->
pure (Cidr_Prelude.Bool.True)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Bool.False)
idr_Main.main8_156.0 <- store idr_Main.main8_val.0
idr_Main.main5_val_144.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main7_150.0 idr_Main.main8_156.0
idr_Main.main8_164.0 <- pure idr_Main.main7_150.0
idr_Main.main9_168.49.3.arity.1.0 <- pure 10
idr_Main.main10_170.49.3.arity.1.0 <- pure idr_Main.main9_168.49.3.arity.1.0
idr_Main.main9_val_166.0 <- idr_Main.checkEqNat2 $ idr_Main.main9_168.49.3.arity.1.0 idr_Main.main9_168.49.3.arity.1.0
idr_Main.main9_val_165.0 <- case idr_Main.main9_val_166.0 of
(Cidr_Prelude.Maybe.Just idr_Main.main10_173.0) ->
pure (Cidr_Prelude.Bool.True)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Bool.False)
idr_Main.main9_174.0 <- store idr_Main.main9_val_165.0
idr_Main.main6_val_158.0 <- idr_Prelude.Interactive.printLn' $ idr_Main.main7_150.0 idr_Main.main9_174.0
idr_Main.main9_181.0 <- pure idr_Main.main7_150.0
idr_Main.main10_185.49.4.arity.1.0 <- pure idr_Main.main9_168.49.3.arity.1.0
idr_Main.main11_187.49.4.arity.1.0 <- pure 9
idr_Main.main10_val_183.0 <- idr_Main.checkEqNat2 $ idr_Main.main9_168.49.3.arity.1.0 idr_Main.main11_187.49.4.arity.1.0
idr_Main.main10_val_182.0 <- case idr_Main.main10_val_183.0 of
(Cidr_Prelude.Maybe.Just idr_Main.main11_190.0) ->
pure (Cidr_Prelude.Bool.False)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Bool.True)
idr_Main.main10_191.0 <- store idr_Main.main10_val_182.0
"idr_{runMain_0}0_val.0" <- idr_Prelude.Interactive.printLn' $ idr_Main.main7_150.0 idr_Main.main10_191.0
pure ()
idr_Main.checkEqNat idr_Main.checkEqNat0.49.arity.1 idr_Main.checkEqNat1.49.arity.1 =
case idr_Main.checkEqNat1.49.arity.1 of
0 ->
case idr_Main.checkEqNat0.49.arity.1 of
0 ->
idr_Main.checkEqNat2_val <- pure (Cidr_Main.Same)
idr_Main.checkEqNat2_2 <- store idr_Main.checkEqNat2_val
pure (Cidr_Prelude.Maybe.Just idr_Main.checkEqNat2_2)
#default ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat2_13.40.1.arity.1 <- pure 1
idris_int_sub2.1 <- _prim_int_sub $ idr_Main.checkEqNat1.49.arity.1 idr_Main.checkEqNat2_13.40.1.arity.1
case idr_Main.checkEqNat0.49.arity.1 of
0 ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat3.40.2.arity.1 <- pure idr_Main.checkEqNat2_13.40.1.arity.1
idris_int_sub2.2 <- _prim_int_sub $ idr_Main.checkEqNat0.49.arity.1 idr_Main.checkEqNat2_13.40.1.arity.1
idr_Main.checkEqNat4_val <- idr_Main.checkEqNat $ idris_int_sub2.2 idris_int_sub2.1
case idr_Main.checkEqNat4_val of
(Cidr_Prelude.Maybe.Just idr_Main.checkEqNat5) ->
idr_Main.checkEqNat6_val <- pure (Cidr_Main.Same)
idr_Main.checkEqNat6 <- store idr_Main.checkEqNat6_val
pure (Cidr_Prelude.Maybe.Just idr_Main.checkEqNat6)
(Cidr_Prelude.Maybe.Nothing) ->
pure (Cidr_Prelude.Maybe.Nothing)
idr_Main.checkEqNat2 idr_Main.checkEqNat20.49.arity.1 idr_Main.checkEqNat21.49.arity.1 =
case idr_Main.checkEqNat21.49.arity.1 of
0 ->
case idr_Main.checkEqNat20.49.arity.1 of
0 ->
idr_Main.checkEqNat22_val <- pure (Cidr_Refl)
idr_Main.checkEqNat22 <- store idr_Main.checkEqNat22_val
pure (Cidr_Prelude.Maybe.Just idr_Main.checkEqNat22)
#default ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat22_67.40.4.arity.1 <- pure 1
idris_int_sub2.4 <- _prim_int_sub $ idr_Main.checkEqNat21.49.arity.1 idr_Main.checkEqNat22_67.40.4.arity.1
case idr_Main.checkEqNat20.49.arity.1 of
0 ->
pure (Cidr_Prelude.Maybe.Nothing)
#default ->
idr_Main.checkEqNat23.40.5.arity.1 <- pure idr_Main.checkEqNat22_67.40.4.arity.1
idris_int_sub2.5 <- _prim_int_sub $ idr_Main.checkEqNat20.49.arity.1 idr_Main.checkEqNat22_67.40.4.arity.1
idr_Main.checkEqNat27_val <- idr_Main.checkEqNat2 $ idris_int_sub2.5 idris_int_sub2.4
"idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:03_val.0" <- pure idr_Main.checkEqNat27_val
case idr_Main.checkEqNat27_val of
(Cidr_Prelude.Maybe.Just "idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:04.0") ->
"idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05_val.0" <- pure (Cidr_Refl)
"idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05.0" <- store "idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05_val.0"
pure (Cidr_Prelude.Maybe.Just "idr_Prelude.Functor.Prelude.@Prelude.Functor.Functor$Maybe:!map:05.0")
(Cidr_Prelude.Maybe.Nothing) ->
pure idr_Main.checkEqNat27_val
idr_Prelude.Show.primNumShow.unboxed idr_Prelude.Show.primNumShow3 =
(CGrInt idr_prim__toStrBigInt0.40.13.arity.1.0) <- fetch idr_Prelude.Show.primNumShow3
idris_int_str2.0 <- _prim_int_str $ idr_prim__toStrBigInt0.40.13.arity.1.0
ccp.3 <- pure 0
idr_Prelude.Show.primNumShow5_val_194 <- pure (CGrInt ccp.3)
idr_Prelude.Show.primNumShow6_val <- pure (CGrInt 5)
"idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:00.40.22.arity.1.0" <- pure ccp.3
"idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0" <- pure 5
idris_int_eq2.0 <- _prim_int_eq $ ccp.3 "idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0"
ccp.0.0 <- case idris_int_eq2.0 of
#False ->
pure ccp.3
#True ->
pure 1
idr_Prelude.Show.primNumShow5_val_193 <- case ccp.0.0 of
0 ->
idris_int_lt2.0 <- _prim_int_lt $ ccp.3 "idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0"
ccp.1.0 <- case idris_int_lt2.0 of
#False ->
pure ccp.0.0
#True ->
pure 1
case ccp.1.0 of
0 ->
pure (Cidr_Prelude.Interfaces.GT)
#default ->
pure (Cidr_Prelude.Interfaces.LT)
#default ->
pure (Cidr_Prelude.Interfaces.EQ)
idr_Prelude.Show.primNumShow5_val_192 <- case idr_Prelude.Show.primNumShow5_val_193 of
(Cidr_Prelude.Interfaces.GT) ->
pure (Cidr_Prelude.Bool.True)
#default ->
ccp.4 <- pure ccp.3
idr_Prelude.Show.primNumShow7.40.6.arity.1 <- pure "idr_Prelude.Interfaces.Prelude.Interfaces.@Prelude.Interfaces.Ord$Integer:!compare:01.40.22.arity.1.0"
idris_int_eq2.1 <- _prim_int_eq $ ccp.3 idr_Prelude.Show.primNumShow7.40.6.arity.1
ccp.0.1 <- case idris_int_eq2.1 of
#False ->
pure ccp.3
#True ->
pure 1
case ccp.0.1 of
0 ->
pure (Cidr_Prelude.Bool.False)
#default ->
pure (Cidr_Prelude.Bool.True)
idr_Prelude.Show.primNumShow5_val <- case idr_Prelude.Show.primNumShow5_val_192 of
(Cidr_Prelude.Bool.False) ->
pure (Cidr_Prelude.Bool.False)
(Cidr_Prelude.Bool.True) ->
idr_Prelude.Show.primNumShow6_209.40.7.arity.1 <- pure #""
idris_str_eq3.0 <- _prim_string_eq $ idris_int_str2.0 idr_Prelude.Show.primNumShow6_209.40.7.arity.1
ccp.2.0 <- case idris_str_eq3.0 of
#False ->
pure ccp.3
#True ->
pure 1
idr_Prelude.Show.primNumShow6_val_206 <- case ccp.2.0 of
0 ->
pure (Cidr_Prelude.Bool.True)
#default ->
pure (Cidr_Prelude.Bool.False)
idr_Prelude.Show.primNumShow7_val_214 <- pure (Cidr_Prelude.Bool.True)
"idr_Decidable.Equality.Decidable.Equality.@Decidable.Equality.DecEq$Bool:!decEq:00_val_246.0" <- pure idr_Prelude.Show.primNumShow6_val_206
idr_Prelude.Show.primNumShow6_val_205 <- case idr_Prelude.Show.primNumShow6_val_206 of
(Cidr_Prelude.Bool.False) ->
pure (Cidr_Prelude.Basics.No)
(Cidr_Prelude.Bool.True) ->
pure (Cidr_Prelude.Basics.Yes)
case idr_Prelude.Show.primNumShow6_val_205 of
(Cidr_Prelude.Basics.No) ->
pure (Cidr_Prelude.Bool.False)
(Cidr_Prelude.Basics.Yes) ->
idris_str_head2.0 <- _prim_string_head $ idris_int_str2.0
idr_Prelude.Show.primNumShow8.40.10.arity.1 <- pure 45
idris_int_eq2.2 <- _prim_int_eq $ idris_str_head2.0 idr_Prelude.Show.primNumShow8.40.10.arity.1
ccp.0.2 <- case idris_int_eq2.2 of
#False ->
pure ccp.3
#True ->
pure 1
case ccp.0.2 of
0 ->
pure (Cidr_Prelude.Bool.False)
#default ->
pure idr_Prelude.Show.primNumShow7_val_214
case idr_Prelude.Show.primNumShow5_val of
(Cidr_Prelude.Bool.False) ->
pure idris_int_str2.0
(Cidr_Prelude.Bool.True) ->
idr_Prelude.Show.primNumShow7_230.40.11.arity.1 <- pure #")"
idris_str_concat3.0 <- _prim_string_concat $ idris_int_str2.0 idr_Prelude.Show.primNumShow7_230.40.11.arity.1
idr_Prelude.Show.primNumShow6_227.40.12.arity.1 <- pure #"("
_prim_string_concat $ idr_Prelude.Show.primNumShow6_227.40.12.arity.1 idris_str_concat3.0
idr_Prelude.Interactive.printLn' idr_Prelude.Interactive.printLn'2 idr_Prelude.Interactive.printLn'3 =
"idr_{APPLY_0}0_val.1" <- fetch idr_Prelude.Interactive.printLn'2
ccp.0 <- case "idr_{APPLY_0}0_val.1" of
(C"idr_{U_Main.{main_1}_1}") ->
"idr_Main.{main_1}3_val.0" <- pure (C"idr_{U_prim__toStrBigInt_1}")
"idr_Main.{main_1}3.0" <- store "idr_Main.{main_1}3_val.0"
"idr_Main.{main_1}5_val.0" <- pure (CGrInt 4)
"idr_Main.{main_1}5.0" <- store "idr_Main.{main_1}5_val.0"
unboxed.CGrString.8.0 <- idr_Prelude.Show.primNumShow.unboxed $ "idr_Main.{main_1}5.0"
"idr_Main.{main_1}1.40.17.arity.1.0" <- pure #"Same "
_prim_string_concat $ "idr_Main.{main_1}1.40.17.arity.1.0" unboxed.CGrString.8.0
(C"idr_{U_Main.{main_2}_1}") ->
"idr_Main.{main_2}3_val.0" <- pure (C"idr_{U_prim__toStrBigInt_1}")
"idr_Main.{main_2}3.0" <- store "idr_Main.{main_2}3_val.0"
"idr_Main.{main_2}5_val.0" <- pure (CGrInt 5)
"idr_Main.{main_2}5.0" <- store "idr_Main.{main_2}5_val.0"
unboxed.CGrString.9.0 <- idr_Prelude.Show.primNumShow.unboxed $ "idr_Main.{main_2}5.0"
"idr_Main.{main_2}1.40.19.arity.1.0" <- pure #"Same "
_prim_string_concat $ "idr_Main.{main_2}1.40.19.arity.1.0" unboxed.CGrString.9.0
(C"idr_{U_Main.{main_3}_1}") ->
"idr_Main.{main_3}3_val.0" <- pure (C"idr_{U_prim__toStrBigInt_1}")
"idr_Main.{main_3}3.0" <- store "idr_Main.{main_3}3_val.0"
"idr_Main.{main_3}5_val.0" <- pure (CGrInt 3)
"idr_Main.{main_3}5.0" <- store "idr_Main.{main_3}5_val.0"
unboxed.CGrString.10.0 <- idr_Prelude.Show.primNumShow.unboxed $ "idr_Main.{main_3}5.0"
"idr_Main.{main_3}1.40.21.arity.1.0" <- pure #"Same "
_prim_string_concat $ "idr_Main.{main_3}1.40.21.arity.1.0" unboxed.CGrString.10.0
(C"idr_{U_Main.{main_5}_1}") ->
"idr_Main.{main_5}0_val.0" <- fetch idr_Prelude.Interactive.printLn'3
case "idr_Main.{main_5}0_val.0" of
(Cidr_Prelude.Bool.False) ->
pure #"False"
(Cidr_Prelude.Bool.True) ->
pure #"True"
idr_Prelude.Interactive.printLn'6.40.14.arity.1 <- pure #"\n"
idris_str_concat3.5 <- _prim_string_concat $ ccp.0 idr_Prelude.Interactive.printLn'6.40.14.arity.1
_prim_string_print $ idris_str_concat3.5
pure (Cidr_MkUnit)

View File

@ -0,0 +1,16 @@
euler% stack exec grin -- ./bugs/cse/bug01/034.SimpleDeadParameterElimination.binary --load-binary --eval --quiet
Same 4
Same 5
Same 3
Same 4
True
True
True
euler% stack exec grin -- ./bugs/cse/bug01/034.SimpleDeadParameterElimination.binary --load-binary --hpt --cse --eval --quiet
Same 4
Same 5
Same 3
True
True
True
euler%