pushGlobal :: Name -> GMState -> GMState
pushGlobal f state
    = putStack (addr: getStack state) state
    where
    addr = aLookup (getGlobals state) f (error ("Symbol " ++ f ++ " is not defined"))

-- pushes an Integer Node into the heap
pushGlobal :: Name -> GMState -> GMState
pushGlobal f state
    = putStack (addr: getStack state) state
    where
    addr = aLookup (getGlobals state) f (error ("Symbol " ++ f ++ " is not defined"))

-- pushes an Integer Node into the heap
pushGlobal f state
    = putStack (addr: getStack state) state
    where
    addr = aLookup (getGlobals state) f (error ("Symbol " ++ f ++ " is not defined"))

-- pushes an Integer Node into the heap