{-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} {-| Module : Data.BitVector.Sized Copyright : (c) Benjamin Selfridge, 2018 Galois Inc. License : BSD3 Maintainer : benselfridge@galois.com Stability : experimental Portability : portable This module defines a width-parameterized 'BitVector' type and various associated operations that assume a 2's complement representation. For more fine-grained access to the internals (including explicit 'Data.Parameterized.NatRepr's), see 'Data.BitVector.Sized.Internal'. -} module Data.BitVector.Sized ( -- * BitVector type BitVector , bv -- * Bitwise operations (variable width) -- | These are functions that involve bit vectors of different lengths. , bvConcat, (<:>) , bvExtract , bvZext , bvSext -- * Conversions to Integer , bvIntegerU , bvIntegerS ) where import Data.BitVector.Sized.Internal