printer' (NConstr t argAddrs) s = putCode (i' ++ (getCode s)) s'
    where
    s'' = putOutput ("Pack{" ++ show t ++ "," ++ show(length argAddrs) ++ "}") s'
    (_: addrs) = getStack s
    s' = putStack (argAddrs ++ addrs) s
    i' = printcode (length argAddrs)
printer' (NConstr t argAddrs) s = putCode (i' ++ (getCode s)) s'
    where
    s'' = putOutput ("Pack{" ++ show t ++ "," ++ show(length argAddrs) ++ "}") s'
    (_: addrs) = getStack s
    s' = putStack (argAddrs ++ addrs) s
    i' = printcode (length argAddrs)
printer' (NConstr t argAddrs) s = putCode (i' ++ (getCode s)) s'
    where
    s'' = putOutput ("Pack{" ++ show t ++ "," ++ show(length argAddrs) ++ "}") s'
    (_: addrs) = getStack s
    s' = putStack (argAddrs ++ addrs) s
    i' = printcode (length argAddrs)