-- |
-- Module      :   Grisette.IR.SymPrim.Data.IntBitwidth
-- Copyright   :   (c) Sirui Lu 2021-2023
-- License     :   BSD-3-Clause (see the LICENSE file)
--
-- Maintainer  :   siruilu@cs.washington.edu
-- Stability   :   Experimental
-- Portability :   GHC only
module Grisette.IR.SymPrim.Data.IntBitwidth where

import Data.Bits (FiniteBits (finiteBitSize))
import Language.Haskell.TH

intBitwidthQ :: TypeQ
intBitwidthQ :: TypeQ
intBitwidthQ = forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ TyLit -> Type
LitT (Integer -> TyLit
NumTyLit forall a b. (a -> b) -> a -> b
$ forall a. Integral a => a -> Integer
toInteger forall a b. (a -> b) -> a -> b
$ forall b. FiniteBits b => b -> Int
finiteBitSize (forall a. HasCallStack => a
undefined :: Int))