import           Data.Char                     (intToDigit)
import qualified Data.Map.Strict               as M hiding ((!))
import           Data.Maybe
import qualified Data.Vector                   as V
import           Numeric                       (showIntAtBase)
import           System.Environment
import           Text.ParserCombinators.Parsec

(!)  = (V.!)
(!?) = (V.!?)

data IMP     = Stack      StackOp
             | Arithmetic ArithOp
             | Heap       HeapOp