ptera-th-0.1.0.0: src/Language/Parser/Ptera/TH/Data/Bits/MaxBit.hs
module Language.Parser.Ptera.TH.Data.Bits.MaxBit (
maxBitSize,
) where
import Language.Parser.Ptera.Prelude
import qualified Data.Bits as Bits
maxBitSize :: Bits.FiniteBits a => Ord a => Num a => a -> Int
maxBitSize n = go 1 2 where
go i m
| n < m = i
| i >= Bits.finiteBitSize n = i
| otherwise = go
do i + 1
do m * 2