            do base_nm <- symName (str ++ "_base")
               off_nm  <- symName (str ++ "_offset")
               base    <- freshConstant sym base_nm BaseNatRepr
               offs    <- freshConstant sym off_nm (BaseBVRepr knownNat)
               return (Value (LLVMPointer base offs))
     isPtr ptr True
     return ptr

-- | Generate a fresh value for a general purpose register.
freshGP :: GPReg -> GPRegUse t -> Spec Pre (Value t)