X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FPArr.hs;h=7a5bd4310080b4a93b9bd491974b80c97ad48fba;hb=0a41af38169035a4359c0c29bc1219af564dce64;hp=7e0f7327f6fdd18f03a8b1bd31e986617e0e7729;hpb=b706340c451952adf230b5b8daecad8a1f34d714;p=ghc-base.git diff --git a/GHC/PArr.hs b/GHC/PArr.hs index 7e0f732..7a5bd43 100644 --- a/GHC/PArr.hs +++ b/GHC/PArr.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -fparr #-} +{-# OPTIONS_GHC -fparr #-} ----------------------------------------------------------------------------- -- | @@ -72,7 +72,7 @@ -- module GHC.PArr ( - [::], -- abstract + -- [::], -- Built-in syntax mapP, -- :: (a -> b) -> [:a:] -> [:b:] (+:+), -- :: [:a:] -> [:a:] -> [:a:] @@ -297,7 +297,7 @@ sumP :: (Num a) => [:a:] -> a sumP = foldP (+) 0 productP :: (Num a) => [:a:] -> a -productP = foldP (*) 0 +productP = foldP (*) 1 maximumP :: (Ord a) => [:a:] -> a maximumP [::] = error "Prelude.maximumP: empty parallel array" @@ -402,7 +402,7 @@ instance Read a => Read [:a:] where -- Ideally, we would like `enumFromToP' and `enumFromThenToP' to be members of -- `Enum'. On the other hand, we really do not want to change `Enum'. Thus, -- for the moment, we hope that the compiler is sufficiently clever to --- properly fuse the following definition. +-- properly fuse the following definitions. enumFromToP :: Enum a => a -> a -> [:a:] enumFromToP x y = mapP toEnum (eftInt (fromEnum x) (fromEnum y)) @@ -414,7 +414,7 @@ enumFromThenToP x y z = mapP toEnum (efttInt (fromEnum x) (fromEnum y) (fromEnum z)) where efttInt x y z = scanlP (+) x $ - replicateP ((z - x + 1) `div` delta - 1) delta + replicateP (abs (z - x) `div` abs delta + 1) delta where delta = y - x @@ -570,7 +570,7 @@ loopFromTo from to mf start arr = runST (do -- unlike standard Haskell arrays, this value represents an -- internal error --- actually loop body of `loop' +-- actual loop body of `loop' -- -- * for this to be really efficient, it has to be translated with the -- constructor specialisation phase "SpecConstr" switched on; as of GHC 5.03