caseJump :: [(Int, GMCode)] -> GMState -> GMState
caseJump es s 
    = putCode (i ++ getCode s) s
    where 
        (NConstr t _) = hLookup (getHeap s) (head (getStack s))
        i = aLookup es t (error ("No case for constructor" ++ show t)) 
caseJump :: [(Int, GMCode)] -> GMState -> GMState
caseJump es s 
    = putCode (i ++ getCode s) s
    where 
        (NConstr t _) = hLookup (getHeap s) (head (getStack s))
        i = aLookup es t (error ("No case for constructor" ++ show t)) 
caseJump es s 
    = putCode (i ++ getCode s) s
    where 
        (NConstr t _) = hLookup (getHeap s) (head (getStack s))
        i = aLookup es t (error ("No case for constructor" ++ show t)) 