boxBoolean :: Bool -> GMState -> GMState
boxBoolean b state
    = putStack (a: getStack state) newState
    where 
        newState = (putHeap h' state)
        (h', a) = hAlloc (getHeap state) (NConstr b' []) 
        b' | b = 2         -- True
           | otherwise = 1 -- False
boxBoolean :: Bool -> GMState -> GMState
boxBoolean b state
    = putStack (a: getStack state) newState
    where 
        newState = (putHeap h' state)
        (h', a) = hAlloc (getHeap state) (NConstr b' []) 
        b' | b = 2         -- True
           | otherwise = 1 -- False
boxBoolean b state
    = putStack (a: getStack state) newState
    where 
        newState = (putHeap h' state)
        (h', a) = hAlloc (getHeap state) (NConstr b' []) 
        b' | b = 2         -- True
           | otherwise = 1 -- False