1. Simplify
  2. Static Argument Transformation
  3. Simplify
  4. Specialisation
  5. Float Outwards
  6. Float Inwards
  7. Simplify
  8. Simplify
  9. Simplify
  10. Demand Analysis
  11. Worker-Wrapper
  12. Bind Glomming
  13. Simplify
  14. Float Outwards
  15. Common Subexpression Elimination
  16. Float Inwards
  17. Liberate Case
  18. Simplify
  19. Constructor Specialisation
  20. Simplify

Simplify

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_a7b LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_a7b LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_a7b xs_a7f)
in my_foldr'_a7b eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75

Static Argument Transformation

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_a7b LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_a7b LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_a7b xs_a7f)
in my_foldr'_a7b eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75

Simplify

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_a7b LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_a7b LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_a7b xs_a7f)
in my_foldr'_a7b eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75

Specialisation


Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssA LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_ssA LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_ssA xs_a7f)
in my_foldr'_ssA eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75

Float Outwards


Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_ssD LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75

Float Inwards


Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_ssD LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75

Simplify

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_ssD LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Simplify

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_ssD LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Simplify

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 :: t_a7q t_a7l t_a7l) λ(n_a79 :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 my_foldr'_ssD LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d xs_a7f] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Demand Analysis

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ Just S :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_ssD LoopBreaker = λ(ds_drR Just S :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 Just S :: t_alK) x_a75
Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Worker-Wrapper

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ Just S :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_ssD LoopBreaker = λ(ds_drR Just S :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 Just S :: t_alK) x_a75
Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Bind Glomming

Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ Just S :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_ssD LoopBreaker = λ(ds_drR Just S :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 Just S :: t_alK) x_a75
Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Simplify



Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_ssD LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_ssD LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_ssD xs_a7f)
in my_foldr'_ssD eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Float Outwards






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Common Subexpression Elimination






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Float Inwards






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Liberate Case






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Simplify






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Constructor Specialisation






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))

Simplify






Main.main_r72 :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L Main.main_r72 = a_sAA (GHC.Prim.sym (GHC.IOBase.:CoIO ()))
Main.my_foldr_r71 :: t_a7l. t_a7q. (t_a7q t_a7l t_a7l) t_a7l [t_a7q] t_a7l [Exported] Arity 3 Str: DmdType LLS Main.my_foldr_r71 = Λ(t_a7l :: GHC.Prim.*) Λ(t_a7q :: GHC.Prim.*) λ(c_a77 Just L :: t_a7q t_a7l t_a7l) λ(n_a79 Just L :: t_a7l) λ(eta_srZ :: [t_a7q]) letrec
my_foldr'_sBn LoopBreaker :: [t_a7q] t_a7l Arity 1 Str: DmdType S my_foldr'_sBn LoopBreaker = λ(ds_drR :: [t_a7q]) case ds_drR@(wild_B1 Just A :: [t_a7q]) of [GHC.Base.[]] n_a79 [GHC.Base.: x_a7d Just L xs_a7f Just L] c_a77 x_a7d (my_foldr'_sBn xs_a7f)
in my_foldr'_sBn eta_srZ
Main.my_id_r6X :: t_alK. t_alK t_alK [Exported] Arity 1 Str: DmdType S Main.my_id_r6X = Λ(t_alK :: GHC.Prim.*) λ(x_a75 :: t_alK) x_a75
:Main.main :: GHC.IOBase.IO () [Exported] Arity 1 Str: DmdType L :Main.main = a_sAC (GHC.Prim.sym (GHC.IOBase.:CoIO ()))