[Compiler.IR] [reset_reuse] def _private.Init.Data.Array.Basic.0.Array.mapMUnsafe.map._at_.applyProjectionRules.spec_0._redArg (x_1 : tobj) (x_2 : usize) (x_3 : usize) (x_4 : obj) : obj := let x_5 : u8 := USize.decLt x_3 x_2; case x_5 : u8 of Bool.false → ret x_4 Bool.true → let x_6 : tobj := Array.uget ◾ x_4 x_3 ◾; case x_6 : obj of Prod.mk → let x_7 : tobj := proj[0] x_6; let x_19 : tobj := reset[2] x_6; case x_7 : obj of Prod.mk → let x_8 : tobj := proj[0] x_7; let x_9 : tobj := proj[1] x_7; let x_18 : tobj := reset[2] x_7; let x_10 : tagged := 0; let x_11 : obj := Array.uset ◾ x_4 x_3 x_10 ◾; let x_12 : obj := reuse x_18 in ctor_0[Prod.mk] x_8 x_9; let x_13 : obj := reuse x_19 in ctor_0[Prod.mk] x_12 x_1; let x_14 : usize := 1; let x_15 : usize := USize.add x_3 x_14; let x_16 : obj := Array.uset ◾ x_11 x_3 x_13 ◾; let x_17 : obj := _private.Init.Data.Array.Basic.0.Array.mapMUnsafe.map._at_.applyProjectionRules.spec_0._redArg x_1 x_2 x_15 x_16; ret x_17 def _private.Init.Data.Array.Basic.0.Array.mapMUnsafe.map._at_.applyProjectionRules.spec_0 (x_1 : ◾) (x_2 : ◾) (x_3 : ◾) (x_4 : tobj) (x_5 : usize) (x_6 : usize) (x_7 : obj) : obj := let x_8 : obj := _private.Init.Data.Array.Basic.0.Array.mapMUnsafe.map._at_.applyProjectionRules.spec_0._redArg x_4 x_5 x_6 x_7; ret x_8 def applyProjectionRules._redArg (x_1 : obj) (x_2 : tobj) : obj := let x_3 : usize := Array.usize ◾ x_1; let x_4 : usize := 0; let x_5 : obj := _private.Init.Data.Array.Basic.0.Array.mapMUnsafe.map._at_.applyProjectionRules.spec_0._redArg x_2 x_3 x_4 x_1; ret x_5 def applyProjectionRules (x_1 : ◾) (x_2 : ◾) (x_3 : ◾) (x_4 : obj) (x_5 : tobj) : obj := let x_6 : obj := applyProjectionRules._redArg x_4 x_5; ret x_6