module PrefixSum where import Data.Array.Parallel.Unlifted test :: UArr Int -> UArr Int test = loopArr . loopU (\a x -> (a + x :*: Just a)) 0 {- Inner loop: $wtrans_sV2 :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.State# s_aIq -> (# GHC.Prim.State# s_aIq, (GHC.Base.Int, GHC.Base.Int) #) [Arity 4 Str: DmdType LLLL] $wtrans_sV2 = \ (ww_sUt :: GHC.Prim.Int#) (ww1_sUx :: GHC.Prim.Int#) (ww2_sUB :: GHC.Prim.Int#) (w_sUD :: GHC.Prim.State# s_aIq) -> case GHC.Prim.==# ww_sUt rb1_aU1 of wild12_aH7 { GHC.Base.False -> case GHC.Prim.writeIntArray# @ s_aIq marr#_aOv ww1_sUx ww2_sUB w_sUD of s2#1_aRd { __DEFAULT -> $wtrans_sV2 (GHC.Prim.+# ww_sUt 1) (GHC.Prim.+# ww1_sUx 1) (GHC.Prim.+# ww2_sUB (GHC.Prim.indexIntArray# rb2_aU2 (GHC.Prim.+# rb_aKE ww_sUt))) s2#1_aRd }; GHC.Base.True -> (# w_sUD, ((GHC.Base.I# ww2_sUB), (GHC.Base.I# ww1_sUx)) #) }; -}