split :: Int -> GMState -> GMState
split _ state
    = putStack (as ++ s) state
    where 
        (NConstr _ as) = hLookup (getHeap state) a
        (a:s)          = getStack state
split :: Int -> GMState -> GMState
split _ state
    = putStack (as ++ s) state
    where 
        (NConstr _ as) = hLookup (getHeap state) a
        (a:s)          = getStack state
split _ state
    = putStack (as ++ s) state
    where 
        (NConstr _ as) = hLookup (getHeap state) a
        (a:s)          = getStack state