
#13203: Implement Bits Natural clearBit -------------------------------------+------------------------------------- Reporter: dylex | Owner: supersven Type: bug | Status: new Priority: lowest | Milestone: Component: libraries/base | Version: 8.0.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by supersven): Hey, I did a small experiment to check that GHC.Natural behaves as expected. How to reproduce (that `clearBit` doesn't work): {{{ [nix-shell:~/src/ghc]$ inplace/bin/ghc-stage2 --interactive GHCi, version 8.3.20170930: http://www.haskell.org/ghc/ :? for help Prelude> import GHC.Natural Prelude GHC.Natural> import Data.Bits Prelude GHC.Natural Data.Bits> clearBit (naturalFromInteger 1) 0 *** Exception: Bits.complement: Natural complement undefined }}} `setBit` and `complementBit` work as expected: {{{ Prelude GHC.Natural Data.Bits> setBit (naturalFromInteger 0) 0 1 Prelude GHC.Natural Data.Bits> setBit (naturalFromInteger 1) 0 1 Prelude GHC.Natural Data.Bits> complementBit (naturalFromInteger 0) 0 1 Prelude GHC.Natural Data.Bits> complementBit (naturalFromInteger 1) 0 0 }}} == Plan == - Implement `clearBit` as proposed by vlopez. - Remove the todo. - Add test. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13203#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler