
#12167: <<loop>> when zip + unzipping a shadowed Vector type variable -------------------------------------+------------------------------------- Reporter: markog | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Keywords: | Operating System: Windows Architecture: x86_64 | Type of failure: Incorrect result (amd64) | at runtime Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- {{{#!hs module Main where import Data.Vector.Unboxed (Vector) import qualified Data.Vector.Unboxed as V (|>) :: a -> (a -> b) -> b x |> f = f x main = do s <- do x <- return $ V.fromList [1,2,3,4] :: IO (Vector Int) d <- return $ V.fromList [1,2,3,4] :: IO (Vector Int) let xd :: (Vector Int, Vector Int) xd = V.zip x d |> V.unzip (x,d) = xd -- here is where the error happens -- returning xd works -- removing the shadowing also works in return x print s }}} I do not see how the above code warrants a <<loop>> error as there is really no recursion in it. The linter always complains when I shadow variables, but I often use the above style in F# to reduce the namespace bloat. Shadowing is not a problem when the variables have different types. Is the above really a compiler error? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12167 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler