module Data.Macaw.AbsDomain.AbsState
  ( AbsBlockState
  , setAbsIP
  , absRegState
  , absStackHasReturnAddr
  , CallParams(..)
  , absEvalCall
  , AbsBlockStack
  , fnStartAbsBlockState
  , joinAbsBlockState
  , StackEntry(..)
  , ArchAbsValue
  , AbsValue(..)
  , bvadd
  , emptyAbsValue
  , concreteCodeAddr
  , joinAbsValue
  , ppAbsValue
  , absTrue
  , absFalse
  , subValue
  , concretize
  , asConcreteSingleton
  , meet
  , absValueSize
  , codePointerSet
  , AbsDomain(..)
  , AbsProcessorState
  , absMem
  , curAbsStack
  , absInitialRegs
  , initAbsProcessorState
  , absAssignments
  , assignLens
  , stridedInterval
  , finalAbsBlockState
  , addMemWrite
  , addCondMemWrite
  , transferValue
  , abstractULt
  , abstractULeq
  , isBottom
  , transferApp
    -- * Utilities
  , hasMaximum
  ) where

import Data.Macaw.AbsDomain.AbsState.Internal