Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

naturalAndNot truncates result when the second argument is word-sized and the first is not
## Summary When the first argument to `naturalAndNot` is larger than a `Word` and the second is `Word`-sized, `naturalAndNot` will truncate the result: ## Steps to reproduce ```haskell module Main where import Data.Bits import GHC.Num.Natural main :: IO () main = -- Ok, prints 16 print $ naturalAndNot ((2 ^ 4) .|. (2 ^ 3)) (2 ^ 3) -- Ok, prints 680564733841876926926749214863536422912 print $ naturalAndNot ((2 ^ 129) .|. (2 ^ 65)) (2 ^ 65) -- Ok, prints 16 print $ naturalAndNot ((2 ^ 4) .|. (2 ^ 3)) ((2 ^ 65) .|. (2 ^ 3)) -- Bug, prints 0 print $ naturalAndNot ((2 ^ 65) .|. (2 ^ 3)) (2 ^ 3) ``` Please provide a set of concrete steps to reproduce the issue. ## Expected behavior The result for the final `print` should be `2 ^ 65` ## Environment * GHC version used: 9.12.2 Optional: * Operating System: MacOS 13.7.6 * System Architecture: x86_64
issue