apply printFun & freeFun
rename to generalStack